* [PATCH] add a exit condition even for no stop case
@ 2014-01-20 19:48 Paulo Flabiano Smorigo
2014-01-21 7:24 ` Vladimir 'φ-coder/phcoder' Serbinenko
0 siblings, 1 reply; 2+ messages in thread
From: Paulo Flabiano Smorigo @ 2014-01-20 19:48 UTC (permalink / raw)
To: grub-devel
Hi all,
As I said in the my last email, I'm running tests in a network with
heavy traffic, like, over 150 arp requests comming every second. Under these
condition, I found an issue in the receive_packets function.
On line 1456 of net/net.c there is a while (1) that only exits if there
is a stop condition and more then 10 packages or if there is no package
received.
If GRUB is idle and enter in this loop, the only condition to leave is
if it doesn't have incoming packages. In a network with heavy traffic
(like mine) this never happens.
The result is that GRUB becomes muted and freeze.
I made a small fix that exits this loop if the incoming packages rearch
a maximum level. I used 100 packages and it seems fine.
---
grub-core/net/net.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 683ab28..f2e723b 100644
--- a/grub-core/net/net.c
+++ b/grub-core/net/net.c
@@ -1453,7 +1453,7 @@ receive_packets (struct grub_net_card *card, int *stop_condition)
}
card->opened = 1;
}
- while (1)
+ while (received < 100)
{
/* Maybe should be better have a fixed number of packets for each card
and just mark them as used and not used. */
--
1.8.2.1
--
Paulo Flabiano Smorigo
IBM Linux Technology Center
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] add a exit condition even for no stop case
2014-01-20 19:48 [PATCH] add a exit condition even for no stop case Paulo Flabiano Smorigo
@ 2014-01-21 7:24 ` Vladimir 'φ-coder/phcoder' Serbinenko
0 siblings, 0 replies; 2+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2014-01-21 7:24 UTC (permalink / raw)
To: The development of GNU GRUB
[-- Attachment #1: Type: text/plain, Size: 1427 bytes --]
Go ahead for trunk
On 20.01.2014 20:48, Paulo Flabiano Smorigo wrote:
> Hi all,
>
> As I said in the my last email, I'm running tests in a network with
> heavy traffic, like, over 150 arp requests comming every second. Under these
> condition, I found an issue in the receive_packets function.
>
> On line 1456 of net/net.c there is a while (1) that only exits if there
> is a stop condition and more then 10 packages or if there is no package
> received.
>
> If GRUB is idle and enter in this loop, the only condition to leave is
> if it doesn't have incoming packages. In a network with heavy traffic
> (like mine) this never happens.
>
> The result is that GRUB becomes muted and freeze.
>
> I made a small fix that exits this loop if the incoming packages rearch
> a maximum level. I used 100 packages and it seems fine.
>
> ---
> grub-core/net/net.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/grub-core/net/net.c b/grub-core/net/net.c
> index 683ab28..f2e723b 100644
> --- a/grub-core/net/net.c
> +++ b/grub-core/net/net.c
> @@ -1453,7 +1453,7 @@ receive_packets (struct grub_net_card *card, int *stop_condition)
> }
> card->opened = 1;
> }
> - while (1)
> + while (received < 100)
> {
> /* Maybe should be better have a fixed number of packets for each card
> and just mark them as used and not used. */
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 274 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-01-21 8:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-20 19:48 [PATCH] add a exit condition even for no stop case Paulo Flabiano Smorigo
2014-01-21 7:24 ` Vladimir 'φ-coder/phcoder' Serbinenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).