All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] net: Fix delay in net_retry test
@ 2015-12-21 22:31 Joe Hershberger
  2015-12-21 22:50 ` Joe Hershberger
  2016-01-07 16:32 ` Simon Glass
  0 siblings, 2 replies; 5+ messages in thread
From: Joe Hershberger @ 2015-12-21 22:31 UTC (permalink / raw)
  To: u-boot

Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout)

Check the arp timeout and adjust the timeout start time before the call
to eth_recv() so that the sandbox driver has the opportunity to adjust
the sandbox timer after the new start time has been recorded.

Also, change the adjustment amount by 11 seconds instead of exactly the
10 seconds that the ping timout is expecting since the timeout check is
looking for the time elapsed to be greater than but not equal to the
specified delay.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>

---

 drivers/net/sandbox.c | 2 +-
 net/net.c             | 7 +++----
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 6763a24..d538d37 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -157,7 +157,7 @@ static int sb_eth_recv(struct udevice *dev, int flags, uchar **packetp)
 	struct eth_sandbox_priv *priv = dev_get_priv(dev);
 
 	if (skip_timeout) {
-		sandbox_timer_add_offset(10000UL);
+		sandbox_timer_add_offset(11000UL);
 		skip_timeout = false;
 	}
 
diff --git a/net/net.c b/net/net.c
index 4d5746a..fba111e 100644
--- a/net/net.c
+++ b/net/net.c
@@ -542,6 +542,9 @@ restart:
 #ifdef CONFIG_SHOW_ACTIVITY
 		show_activity(1);
 #endif
+		if (arp_timeout_check() > 0)
+			time_start = get_timer(0);
+
 		/*
 		 *	Check the ethernet for a new packet.  The ethernet
 		 *	receive routine will process it.
@@ -570,10 +573,6 @@ restart:
 			goto done;
 		}
 
-		if (arp_timeout_check() > 0) {
-		    time_start = get_timer(0);
-		}
-
 		/*
 		 *	Check for a timeout, and run the timeout handler
 		 *	if we have one.
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] net: Fix delay in net_retry test
  2015-12-21 22:31 [U-Boot] [PATCH] net: Fix delay in net_retry test Joe Hershberger
@ 2015-12-21 22:50 ` Joe Hershberger
  2015-12-21 23:30   ` Stefan Bruens
  2016-01-07 16:32 ` Simon Glass
  1 sibling, 1 reply; 5+ messages in thread
From: Joe Hershberger @ 2015-12-21 22:50 UTC (permalink / raw)
  To: u-boot

Hi Stefan,

On Mon, Dec 21, 2015 at 4:31 PM, Joe Hershberger <joe.hershberger@ni.com> wrote:
> Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout)
>
> Check the arp timeout and adjust the timeout start time before the call
> to eth_recv() so that the sandbox driver has the opportunity to adjust
> the sandbox timer after the new start time has been recorded.

This had to change to allow sandbox tests to work. Please verify that
it does not impair the behavior you intended with your patch.

> Also, change the adjustment amount by 11 seconds instead of exactly the
> 10 seconds that the ping timout is expecting since the timeout check is
> looking for the time elapsed to be greater than but not equal to the
> specified delay.
>
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
>  drivers/net/sandbox.c | 2 +-
>  net/net.c             | 7 +++----
>  2 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
> index 6763a24..d538d37 100644
> --- a/drivers/net/sandbox.c
> +++ b/drivers/net/sandbox.c
> @@ -157,7 +157,7 @@ static int sb_eth_recv(struct udevice *dev, int flags, uchar **packetp)
>         struct eth_sandbox_priv *priv = dev_get_priv(dev);
>
>         if (skip_timeout) {
> -               sandbox_timer_add_offset(10000UL);
> +               sandbox_timer_add_offset(11000UL);
>                 skip_timeout = false;
>         }
>
> diff --git a/net/net.c b/net/net.c
> index 4d5746a..fba111e 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -542,6 +542,9 @@ restart:
>  #ifdef CONFIG_SHOW_ACTIVITY
>                 show_activity(1);
>  #endif
> +               if (arp_timeout_check() > 0)
> +                       time_start = get_timer(0);
> +
>                 /*
>                  *      Check the ethernet for a new packet.  The ethernet
>                  *      receive routine will process it.
> @@ -570,10 +573,6 @@ restart:
>                         goto done;
>                 }
>
> -               if (arp_timeout_check() > 0) {
> -                   time_start = get_timer(0);
> -               }
> -
>                 /*
>                  *      Check for a timeout, and run the timeout handler
>                  *      if we have one.
> --
> 2.5.0
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] net: Fix delay in net_retry test
  2015-12-21 22:50 ` Joe Hershberger
@ 2015-12-21 23:30   ` Stefan Bruens
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Bruens @ 2015-12-21 23:30 UTC (permalink / raw)
  To: u-boot

Hi Joe,

On Monday 21 December 2015 16:50:52 Joe Hershberger wrote:
> Hi Stefan,
> 
> On Mon, Dec 21, 2015 at 4:31 PM, Joe Hershberger <joe.hershberger@ni.com> 
wrote:
> > Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate
> > packets on timeout)
> > 
> > Check the arp timeout and adjust the timeout start time before the call
> > to eth_recv() so that the sandbox driver has the opportunity to adjust
> > the sandbox timer after the new start time has been recorded.
> 
> This had to change to allow sandbox tests to work. Please verify that
> it does not impair the behavior you intended with your patch.

I can't see any reason this change would impair the behaviour. The runtime
of the eth_rx() function should be small compared to the request timeout.

I haven't actually tested your change and won't be able to do until after the 
holydays, but as I think it is fine:

Reviewed-by: Stefan Br?ns <stefan.bruens@rwth-aachen.de>

> > Also, change the adjustment amount by 11 seconds instead of exactly the
> > 10 seconds that the ping timout is expecting since the timeout check is
> > looking for the time elapsed to be greater than but not equal to the
> > specified delay.
> > 
> > Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> > 
> > ---
> > 
> >  drivers/net/sandbox.c | 2 +-
> >  net/net.c             | 7 +++----
> >  2 files changed, 4 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
> > index 6763a24..d538d37 100644
> > --- a/drivers/net/sandbox.c
> > +++ b/drivers/net/sandbox.c
> > @@ -157,7 +157,7 @@ static int sb_eth_recv(struct udevice *dev, int flags,
> > uchar **packetp)> 
> >         struct eth_sandbox_priv *priv = dev_get_priv(dev);
> >         
> >         if (skip_timeout) {
> > 
> > -               sandbox_timer_add_offset(10000UL);
> > +               sandbox_timer_add_offset(11000UL);
> > 
> >                 skip_timeout = false;
> >         
> >         }
> > 
> > diff --git a/net/net.c b/net/net.c
> > index 4d5746a..fba111e 100644
> > --- a/net/net.c
> > +++ b/net/net.c
> > 
> > @@ -542,6 +542,9 @@ restart:
> >  #ifdef CONFIG_SHOW_ACTIVITY
> >  
> >                 show_activity(1);
> >  
> >  #endif
> > 
> > +               if (arp_timeout_check() > 0)
> > +                       time_start = get_timer(0);
> > +
> > 
> >                 /*
> >                 
> >                  *      Check the ethernet for a new packet.  The ethernet
> >                  *      receive routine will process it.
> > 
> > @@ -570,10 +573,6 @@ restart:
> >                         goto done;
> >                 
> >                 }
> > 
> > -               if (arp_timeout_check() > 0) {
> > -                   time_start = get_timer(0);
> > -               }
> > -
> > 
> >                 /*
> >                 
> >                  *      Check for a timeout, and run the timeout handler
> >                  *      if we have one.
> > 
> > --
> > 2.5.0
> > 
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot

-- 
Stefan Br?ns  /  Bergstra?e 21  /  52062 Aachen
home: +49 241 53809034     mobile: +49 151 50412019
work: +49 2405 49936-424

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] net: Fix delay in net_retry test
  2015-12-21 22:31 [U-Boot] [PATCH] net: Fix delay in net_retry test Joe Hershberger
  2015-12-21 22:50 ` Joe Hershberger
@ 2016-01-07 16:32 ` Simon Glass
  2016-01-07 19:24   ` Simon Glass
  1 sibling, 1 reply; 5+ messages in thread
From: Simon Glass @ 2016-01-07 16:32 UTC (permalink / raw)
  To: u-boot

On 21 December 2015 at 15:31, Joe Hershberger <joe.hershberger@ni.com> wrote:
> Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout)
>
> Check the arp timeout and adjust the timeout start time before the call
> to eth_recv() so that the sandbox driver has the opportunity to adjust
> the sandbox timer after the new start time has been recorded.
>
> Also, change the adjustment amount by 11 seconds instead of exactly the
> 10 seconds that the ping timout is expecting since the timeout check is
> looking for the time elapsed to be greater than but not equal to the
> specified delay.
>
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
>
> ---
>
>  drivers/net/sandbox.c | 2 +-
>  net/net.c             | 7 +++----
>  2 files changed, 4 insertions(+), 5 deletions(-)

Acked-by: Simon Glass <sjg@chromium.org>

I'm planning to pick this up for the release. Please let me know if
you have any concerns.

- Simon

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] net: Fix delay in net_retry test
  2016-01-07 16:32 ` Simon Glass
@ 2016-01-07 19:24   ` Simon Glass
  0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2016-01-07 19:24 UTC (permalink / raw)
  To: u-boot

On 7 January 2016 at 09:32, Simon Glass <sjg@chromium.org> wrote:
> On 21 December 2015 at 15:31, Joe Hershberger <joe.hershberger@ni.com> wrote:
>> Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout)
>>
>> Check the arp timeout and adjust the timeout start time before the call
>> to eth_recv() so that the sandbox driver has the opportunity to adjust
>> the sandbox timer after the new start time has been recorded.
>>
>> Also, change the adjustment amount by 11 seconds instead of exactly the
>> 10 seconds that the ping timout is expecting since the timeout check is
>> looking for the time elapsed to be greater than but not equal to the
>> specified delay.
>>
>> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>> ---
>>
>>  drivers/net/sandbox.c | 2 +-
>>  net/net.c             | 7 +++----
>>  2 files changed, 4 insertions(+), 5 deletions(-)
>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> I'm planning to pick this up for the release. Please let me know if
> you have any concerns.

Applied to u-boot-dm/master.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-01-07 19:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-21 22:31 [U-Boot] [PATCH] net: Fix delay in net_retry test Joe Hershberger
2015-12-21 22:50 ` Joe Hershberger
2015-12-21 23:30   ` Stefan Bruens
2016-01-07 16:32 ` Simon Glass
2016-01-07 19:24   ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.