From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:45485) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYb0n-0001VX-3D for qemu-devel@nongnu.org; Mon, 20 Jun 2011 05:43:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QYb0l-0003cE-6y for qemu-devel@nongnu.org; Mon, 20 Jun 2011 05:43:16 -0400 Received: from [222.73.24.84] (port=60525 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYb0k-0003VI-At for qemu-devel@nongnu.org; Mon, 20 Jun 2011 05:43:15 -0400 Message-ID: <4DFF1596.8020902@cn.fujitsu.com> Date: Mon, 20 Jun 2011 17:40:38 +0800 From: Wen Congyang MIME-Version: 1.0 References: <4DF9BD9C.1060307@cn.fujitsu.com> <4DF9DD77.5040401@redhat.com> <20110616124651.GD14583@redhat.com> <4DFAAF00.900@cn.fujitsu.com> <4DFF0E9D.90409@redhat.com> In-Reply-To: <4DFF0E9D.90409@redhat.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Qemu-devel] [PATCH] do not send packet to nic if the packet will be dropped by nic List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf , "Michael S. Tsirkin" , Aurelien Jarno , qemu-devel 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 > > 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 >