qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] do not send packet to nic if the packet will be


From: Wen Congyang
Subject: Re: [Qemu-devel] [PATCH] do not send packet to nic if the packet will be dropped by nic
Date: Mon, 20 Jun 2011 17:40:38 +0800
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4

At 06/20/2011 05:10 PM, Kevin Wolf Write:
> Am 17.06.2011 03:33, schrieb Wen Congyang:
>> If !s->clock_enabled or !rtl8139_receiver_enabled(s), it means that
>> the nic will drop all packets from host. So qemu will keep getting
>> packets from host and wasting CPU on dropping packets. This seems
>> worse than packets that should be dropped but aren't.
>>
>> Signed-off-by: Wen Congyang <address@hidden>
> 
> Which bug does this change fix? I'm still not convinced that we should
> do it.

Maybe not a bug fix now. As Michael S. Tsirkin said, if rtl8139_can_receive()
returns 1, qemu will keep getting packets from host and wasting CPU on
dropping packets. We can save CPU by return 0.

> 
>> ---
>>  hw/rtl8139.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/rtl8139.c b/hw/rtl8139.c
>> index 2f8db58..9084678 100644
>> --- a/hw/rtl8139.c
>> +++ b/hw/rtl8139.c
>> @@ -810,9 +810,9 @@ static int rtl8139_can_receive(VLANClientState *nc)
>>  
>>      /* Receive (drop) packets if card is disabled.  */
> 
> This comment isn't accurate any more after applying the patch.
> 
>>      if (!s->clock_enabled)
>> -      return 1;
>> +      return 0;
>>      if (!rtl8139_receiver_enabled(s))
>> -      return 1;
>> +      return 0;
>>  
>>      if (rtl8139_cp_receiver_enabled(s)) {
>>          /* ??? Flow control not implemented in c+ mode.
>> -- 1.7.1 
> 
> Kevin
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]