[U-Boot-Users] NFS Timeout with large files.

Hi all,
I am facing a timeout problem with nfs while transferring large files. However i encounter no problem with smaller files.
The entire thing works fine with another nfs server.
Any hints on what could be the problem ??

Hello, Upakul
I got same experience.
U-boot NFS command do not retry to send a command again. so, when the packet is lost, It will cause timeout.
with this patch, it should fix. but this is very old code. so, I don't know, it can applys to current one.
Regards -------- Hiroshi Ito Media Lab. Inc., URL http://www.mlb.co.jp ( Sorry, Japanese only. ) TEL +81-3-5294-7255 FAX +81-3-5294-7256
From: "Upakul Barkakaty" upakul@gmail.com Subject: [U-Boot-Users] NFS Timeout with large files. Date: Wed, 30 Jan 2008 11:55:18 +0530
Hi all,
I am facing a timeout problem with nfs while transferring large files. However i encounter no problem with smaller files.
The entire thing works fine with another nfs server.
Any hints on what could be the problem ??
-- Regards, Upakul Barkakaty
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
commit cbba3261e3cf434e36aa64efe0d36e430f4e5152 Author: ito@mlb.co.jp Date: Wed Aug 30 15:48:36 2006 +0900
nfs comand retrys read when timeouts are caused.
diff --git a/net/nfs.c b/net/nfs.c index de789e1..4385e07 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -34,7 +34,8 @@ #if ((CONFIG_COMMANDS & CFG_CMD_NET) && (CONFIG_COMMANDS & CFG_CMD_NFS))
#define HASHES_PER_LINE 65 /* Number of "loading" hashes per line */ -#define NFS_TIMEOUT 60 +#define NFS_RETRY_COUNT 30 +#define NFS_TIMEOUT 2
static int fs_mounted = 0; static unsigned long rpc_id = 0; @@ -587,6 +588,10 @@ Interfaces of U-BOOT static void NfsTimeout (void) { + if ( NfsTimeoutCount++ < NFS_RETRY_COUNT ) { + NfsSend (); + return; + } puts ("Timeout\n"); NetState = NETLOOP_FAIL; return;

On 1/30/08, Hiroshi Ito ito@mlb.co.jp wrote:
Hello, Upakul
I got same experience.
U-boot NFS command do not retry to send a command again. so, when the packet is lost, It will cause timeout.
with this patch, it should fix. but this is very old code. so, I don't know, it can applys to current one.
Regards
Hiroshi Ito Media Lab. Inc., URL http://www.mlb.co.jp ( Sorry, Japanese only. ) TEL +81-3-5294-7255 FAX +81-3-5294-7256
From: "Upakul Barkakaty" upakul@gmail.com Subject: [U-Boot-Users] NFS Timeout with large files. Date: Wed, 30 Jan 2008 11:55:18 +0530
Hi all,
I am facing a timeout problem with nfs while transferring large files. However i encounter no problem with smaller files.
The entire thing works fine with another nfs server.
Any hints on what could be the problem ??
-- Regards, Upakul Barkakaty
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
commit cbba3261e3cf434e36aa64efe0d36e430f4e5152 Author: ito@mlb.co.jp Date: Wed Aug 30 15:48:36 2006 +0900
nfs comand retrys read when timeouts are caused.
diff --git a/net/nfs.c b/net/nfs.c index de789e1..4385e07 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -34,7 +34,8 @@ #if ((CONFIG_COMMANDS & CFG_CMD_NET) && (CONFIG_COMMANDS & CFG_CMD_NFS))
#define HASHES_PER_LINE 65 /* Number of "loading" hashes per line */ -#define NFS_TIMEOUT 60 +#define NFS_RETRY_COUNT 30 +#define NFS_TIMEOUT 2
static int fs_mounted = 0; static unsigned long rpc_id = 0; @@ -587,6 +588,10 @@ Interfaces of U-BOOT static void NfsTimeout (void) {
if ( NfsTimeoutCount++ < NFS_RETRY_COUNT ) {
NfsSend ();
return;
} puts ("Timeout\n"); NetState = NETLOOP_FAIL; return;
Thanks for the info, Hiroshi.

Dear Hiroshi Ito,
in message 20080130.163217.126574443.ito@mlb.co.jp you wrote:
U-boot NFS command do not retry to send a command again. so, when the packet is lost, It will cause timeout.
with this patch, it should fix. but this is very old code. so, I don't know, it can applys to current one.
We'll make it fit, if necessary. Could you please re-post this as a proper patch (see http://www.denx.de/wiki/UBoot/Patches); please especially make sure to include your signed-off-by line.
Thanks.
Best regards,
Wolfgang Denk

Retry to send NFS packet before reaching timeout.
Signed-off-by: Hiroshi Ito ito@mlb.co.jp ---
diff --git a/net/nfs.c b/net/nfs.c index de789e1..4385e07 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -34,7 +34,8 @@ #if ((CONFIG_COMMANDS & CFG_CMD_NET) && (CONFIG_COMMANDS & CFG_CMD_NFS))
#define HASHES_PER_LINE 65 /* Number of "loading" hashes per line */ -#define NFS_TIMEOUT 60 +#define NFS_RETRY_COUNT 30 +#define NFS_TIMEOUT 2
static int fs_mounted = 0; static unsigned long rpc_id = 0; @@ -587,6 +588,10 @@ Interfaces of U-BOOT static void NfsTimeout (void) { + if ( NfsTimeoutCount++ < NFS_RETRY_COUNT ) { + NfsSend (); + return; + } puts ("Timeout\n"); NetState = NETLOOP_FAIL; return;

In message 20080131.183504.59473686.ito@mlb.co.jp you wrote:
Retry to send NFS packet before reaching timeout.
Signed-off-by: Hiroshi Ito ito@mlb.co.jp
Applied, thanks a lot.
Best regards,
Wolfgang Denk
participants (3)
-
Hiroshi Ito
-
Upakul Barkakaty
-
Wolfgang Denk