public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
@ 2007-12-12 12:54 Dor Laor
  2007-12-12 13:19 ` [kvm-devel] " Christian Borntraeger
  2007-12-18  0:01 ` Rusty Russell
  0 siblings, 2 replies; 16+ messages in thread
From: Dor Laor @ 2007-12-12 12:54 UTC (permalink / raw)
  To: Rusty Russell, kvm-devel, netdev, virtualization

commit 763769621d271d92204ed27552d75448587c1ac0
Author: Dor Laor <dor.laor@qumranet.com>
Date:   Wed Dec 12 14:52:00 2007 +0200

    [virtio-net][PATCH] Don't arm tx hrtimer with a constant 50us each 
transmit
   
    The current start_xmit sets 500us hrtimer to kick the host.
    The problem is that if another xmit happens before the timer was 
fired then
    the first xmit will have to wait additional 500us.
    This patch does not re-arm the timer if there is existing one.
    This will shorten the latency for tx.
   
    Signed-off-by: Dor Laor <dor.laor@qumranet.com>

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 7b051d5..8bb17d1
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -406,10 +405,10 @@ again:
         virtio_debug(vdebug, "%s: before calling kick %d\n", 
__FUNCTION__, __LINE__);
         vi->svq->vq_ops->kick(vi->svq);
         vi->out_num = 0;
-    } else {
-        vi->stats.hrtimer_starts++;
-        hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
-                  HRTIMER_MODE_REL);
+    } else if (!hrtimer_is_queued(&vi->tx_timer)) {
+            vi->stats.hrtimer_starts++;
+            hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
+                      HRTIMER_MODE_REL);
     }
     return 0;
 }


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

* Re: [kvm-devel] [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
  2007-12-12 12:54 [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit Dor Laor
@ 2007-12-12 13:19 ` Christian Borntraeger
  2007-12-12 14:17   ` Dor Laor
  2007-12-18  0:01 ` Rusty Russell
  1 sibling, 1 reply; 16+ messages in thread
From: Christian Borntraeger @ 2007-12-12 13:19 UTC (permalink / raw)
  To: kvm-devel, dor.laor; +Cc: Rusty Russell, netdev, virtualization

Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -406,10 +405,10 @@ again:

Hmm, while I agree in general with the patch, I fail to find the proper 
version of virtio_net where this patch applies. I tried kvm.git and 
linux-2.6.git from kernel.org. Can you give me a pointer to the repository 
where you work on virtio?

Christian

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

* Re: [kvm-devel] [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
  2007-12-12 13:19 ` [kvm-devel] " Christian Borntraeger
@ 2007-12-12 14:17   ` Dor Laor
  2007-12-12 16:33     ` Christian Borntraeger
  0 siblings, 1 reply; 16+ messages in thread
From: Dor Laor @ 2007-12-12 14:17 UTC (permalink / raw)
  To: Christian Borntraeger; +Cc: kvm-devel, Rusty Russell, netdev, virtualization

Christian Borntraeger wrote:
>
> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> > --- a/drivers/net/virtio_net.c
> > +++ b/drivers/net/virtio_net.c
> > @@ -406,10 +405,10 @@ again:
>
> Hmm, while I agree in general with the patch, I fail to find the proper
> version of virtio_net where this patch applies. I tried kvm.git and
> linux-2.6.git from kernel.org. Can you give me a pointer to the repository
> where you work on virtio?
>
Sorry for that, I added some debug prints of my one.
Here it is: *git clone 
git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 'virtio'.
BTW: what git repository do you use?

This patch improves my tx performance from 720Mbps to 900Mbps.
Dor
>
> Christian
>


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

* Re: [kvm-devel] [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
  2007-12-12 14:17   ` Dor Laor
@ 2007-12-12 16:33     ` Christian Borntraeger
       [not found]       ` <200712121733.07804.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Christian Borntraeger @ 2007-12-12 16:33 UTC (permalink / raw)
  To: dor.laor; +Cc: kvm-devel, Rusty Russell, netdev, virtualization

Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> Christian Borntraeger wrote:
> >
> > Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> > > --- a/drivers/net/virtio_net.c
> > > +++ b/drivers/net/virtio_net.c
> > > @@ -406,10 +405,10 @@ again:
> >
> > Hmm, while I agree in general with the patch, I fail to find the proper
> > version of virtio_net where this patch applies. I tried kvm.git and
> > linux-2.6.git from kernel.org. Can you give me a pointer to the 
repository
> > where you work on virtio?
> >
> Sorry for that, I added some debug prints of my one.
> Here it is: *git clone 
> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 'virtio'.

Ah, ok. I will look into that branch.

> BTW: what git repository do you use?

I use Avis git from kernel.org:
git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm

Christian

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]       ` <200712121733.07804.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
@ 2007-12-13  8:44         ` Dor Laor
       [not found]           ` <4760F0EA.7010004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Dor Laor @ 2007-12-13  8:44 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	netdev-u79uwXL29TY76Z2rM5mHXA, virtualization

Christian Borntraeger wrote:
>
> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> > Christian Borntraeger wrote:
> > >
> > > Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> > > > --- a/drivers/net/virtio_net.c
> > > > +++ b/drivers/net/virtio_net.c
> > > > @@ -406,10 +405,10 @@ again:
> > >
> > > Hmm, while I agree in general with the patch, I fail to find the 
> proper
> > > version of virtio_net where this patch applies. I tried kvm.git and
> > > linux-2.6.git from kernel.org. Can you give me a pointer to the
> repository
> > > where you work on virtio?
> > >
> > Sorry for that, I added some debug prints of my one.
> > Here it is: *git clone
> > git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
> 'virtio'.
>
> Ah, ok. I will look into that branch.
>
> > BTW: what git repository do you use?
>
> I use Avis git from kernel.org:
> git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
>
I patch it with Anthony's http://hg.codemonkey.ws/linux-virtio/
Over that I send the patches. One can use my repository directly.
>
> Christian
>


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]           ` <4760F0EA.7010004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-12-14 17:19             ` Cam Macdonell
       [not found]               ` <4762BB1A.4020905-edFDblaTWIyXbbII50Afww@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Cam Macdonell @ 2007-12-14 17:19 UTC (permalink / raw)
  To: dor.laor-atKUWr5tajBWk0Htik3J/w
  Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Dor Laor wrote:
> Christian Borntraeger wrote:
>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>> Christian Borntraeger wrote:
>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>> --- a/drivers/net/virtio_net.c
>>>>> +++ b/drivers/net/virtio_net.c
>>>>> @@ -406,10 +405,10 @@ again:
>>>> Hmm, while I agree in general with the patch, I fail to find the 
>> proper
>>>> version of virtio_net where this patch applies. I tried kvm.git and
>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>> repository
>>>> where you work on virtio?
>>>>
>>> Sorry for that, I added some debug prints of my one.
>>> Here it is: *git clone
>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>> 'virtio'.
>>

Hi Dor,

Which userspace repo is usable with the above repo?

Thanks,
Cam

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]               ` <4762BB1A.4020905-edFDblaTWIyXbbII50Afww@public.gmane.org>
@ 2007-12-16 10:13                 ` Dor Laor
       [not found]                   ` <4764FA5E.3070104-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Dor Laor @ 2007-12-16 10:13 UTC (permalink / raw)
  To: Cam Macdonell; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Cam Macdonell wrote:
> Dor Laor wrote:
>> Christian Borntraeger wrote:
>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>> Christian Borntraeger wrote:
>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>> --- a/drivers/net/virtio_net.c
>>>>>> +++ b/drivers/net/virtio_net.c
>>>>>> @@ -406,10 +405,10 @@ again:
>>>>> Hmm, while I agree in general with the patch, I fail to find the 
>>> proper
>>>>> version of virtio_net where this patch applies. I tried kvm.git and
>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>>> repository
>>>>> where you work on virtio?
>>>>>
>>>> Sorry for that, I added some debug prints of my one.
>>>> Here it is: *git clone
>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>>> 'virtio'.
>>>
>
> Hi Dor,
>
> Which userspace repo is usable with the above repo?
>
> Thanks,
> Cam
>
git://kvm.qumranet.com/home/dor/src/kvm-nv use branch
Regards,
Dor.

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]                   ` <4764FA5E.3070104-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-12-17 20:40                     ` Cam Macdonell
       [not found]                       ` <4766DEB2.5050601-edFDblaTWIyXbbII50Afww@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Cam Macdonell @ 2007-12-17 20:40 UTC (permalink / raw)
  To: dor.laor-atKUWr5tajBWk0Htik3J/w
  Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Dor Laor wrote:
> Cam Macdonell wrote:
>> Dor Laor wrote:
>>> Christian Borntraeger wrote:
>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>> Christian Borntraeger wrote:
>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>> --- a/drivers/net/virtio_net.c
>>>>>>> +++ b/drivers/net/virtio_net.c
>>>>>>> @@ -406,10 +405,10 @@ again:
>>>>>> Hmm, while I agree in general with the patch, I fail to find the 
>>>> proper
>>>>>> version of virtio_net where this patch applies. I tried kvm.git and
>>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>>>> repository
>>>>>> where you work on virtio?
>>>>>>
>>>>> Sorry for that, I added some debug prints of my one.
>>>>> Here it is: *git clone
>>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>>>> 'virtio'.
>>>>
>>
>> Hi Dor,
>>
>> Which userspace repo is usable with the above repo?
>>
>> Thanks,
>> Cam
>>
> git://kvm.qumranet.com/home/dor/src/kvm-nv use branch

Hi Dor,

I think you forgot a word after branch above.  Also, I get the following 
error when I try clone the userspace repo.

cam@madhatter:~/src/KVM$ git clone 
git://kvm.qumranet.com/home/dor/src/kvm-nv
Initialized empty Git repository in /home/cam/src/KVM/kvm-nv/.git/
fatal: The remote end hung up unexpectedly
fetch-pack from 'git://kvm.qumranet.com/home/dor/src/kvm-nv' failed.

Thanks,
Cam

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
  2007-12-12 12:54 [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit Dor Laor
  2007-12-12 13:19 ` [kvm-devel] " Christian Borntraeger
@ 2007-12-18  0:01 ` Rusty Russell
       [not found]   ` <200712181101.14916.rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
  1 sibling, 1 reply; 16+ messages in thread
From: Rusty Russell @ 2007-12-18  0:01 UTC (permalink / raw)
  To: dor.laor; +Cc: kvm-devel, netdev, virtualization

On Wednesday 12 December 2007 23:54:00 Dor Laor wrote:
> commit 763769621d271d92204ed27552d75448587c1ac0
> Author: Dor Laor <dor.laor@qumranet.com>
> Date:   Wed Dec 12 14:52:00 2007 +0200
>
>     [virtio-net][PATCH] Don't arm tx hrtimer with a constant 50us each
> transmit
>
>     The current start_xmit sets 500us hrtimer to kick the host.
>     The problem is that if another xmit happens before the timer was
> fired then
>     the first xmit will have to wait additional 500us.
>     This patch does not re-arm the timer if there is existing one.
>     This will shorten the latency for tx.

Hi Dor!

    Yes, I pondered this when I wrote the code.  On the one hand, it's a 
low-probability pathological corner case, on the other, your patch reduces 
the number of timer reprograms in the normal case.

So I've applied it, thanks!
Rusty.





>
>     Signed-off-by: Dor Laor <dor.laor@qumranet.com>
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7b051d5..8bb17d1
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -406,10 +405,10 @@ again:
>          virtio_debug(vdebug, "%s: before calling kick %d\n",
> __FUNCTION__, __LINE__);
>          vi->svq->vq_ops->kick(vi->svq);
>          vi->out_num = 0;
> -    } else {
> -        vi->stats.hrtimer_starts++;
> -        hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
> -                  HRTIMER_MODE_REL);
> +    } else if (!hrtimer_is_queued(&vi->tx_timer)) {
> +            vi->stats.hrtimer_starts++;
> +            hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
> +                      HRTIMER_MODE_REL);
>      }
>      return 0;
>  }



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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]   ` <200712181101.14916.rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
@ 2007-12-18  5:30     ` Avi Kivity
       [not found]       ` <47675AE0.8050808-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
  2007-12-18 12:55     ` Dor Laor
  1 sibling, 1 reply; 16+ messages in thread
From: Avi Kivity @ 2007-12-18  5:30 UTC (permalink / raw)
  To: Rusty Russell; +Cc: kvm-devel, netdev-u79uwXL29TY76Z2rM5mHXA, virtualization

Rusty Russell wrote:
> On Wednesday 12 December 2007 23:54:00 Dor Laor wrote:
>   
>> commit 763769621d271d92204ed27552d75448587c1ac0
>> Author: Dor Laor <dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
>> Date:   Wed Dec 12 14:52:00 2007 +0200
>>
>>     [virtio-net][PATCH] Don't arm tx hrtimer with a constant 50us each
>> transmit
>>
>>     The current start_xmit sets 500us hrtimer to kick the host.
>>     The problem is that if another xmit happens before the timer was
>> fired then
>>     the first xmit will have to wait additional 500us.
>>     This patch does not re-arm the timer if there is existing one.
>>     This will shorten the latency for tx.
>>     
>
> Hi Dor!
>
>     Yes, I pondered this when I wrote the code.  On the one hand, it's a 
> low-probability pathological corner case, on the other, your patch reduces 
> the number of timer reprograms in the normal case.
>   

One thing that came up in our discussions is to let the host do the 
timer processing instead of the guest.  When tx exit mitigation is 
enabled, the guest bumps the queue pointer, but carefully refrains from 
kicking the host.  The host polls the tx pointer using a timer, kicking 
itself periodically; if polling yields no packets it disables tx exit 
mitigation.  This saves the guest the bother of programming the timer, 
which presumably requires an exit if the timer is the closest one to 
expiration.

[btw, this can be implemented in virtqueue rather than virtio-net, no?]

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]       ` <47675AE0.8050808-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-12-18  7:24         ` Rusty Russell
  0 siblings, 0 replies; 16+ messages in thread
From: Rusty Russell @ 2007-12-18  7:24 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm-devel, netdev-u79uwXL29TY76Z2rM5mHXA, virtualization

On Tuesday 18 December 2007 16:30:08 Avi Kivity wrote:
> Rusty Russell wrote:
> >     Yes, I pondered this when I wrote the code.  On the one hand, it's a
> > low-probability pathological corner case, on the other, your patch
> > reduces the number of timer reprograms in the normal case.
>
> One thing that came up in our discussions is to let the host do the
> timer processing instead of the guest.  When tx exit mitigation is
> enabled, the guest bumps the queue pointer, but carefully refrains from
> kicking the host.  The host polls the tx pointer using a timer, kicking
> itself periodically; if polling yields no packets it disables tx exit
> mitigation.  This saves the guest the bother of programming the timer,
> which presumably requires an exit if the timer is the closest one to
> expiration.
>
> [btw, this can be implemented in virtqueue rather than virtio-net, no?]

Yes, the current patch is a hack (look at the hardcoded constant); wanted to 
see how much it helps, if any.

More sophisticated timer management would be a definite win... funny, I have a 
patch here which helps that....

Rusty.

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]                       ` <4766DEB2.5050601-edFDblaTWIyXbbII50Afww@public.gmane.org>
@ 2007-12-18 12:50                         ` Dor Laor
  2007-12-18 18:42                         ` Cam Macdonell
  1 sibling, 0 replies; 16+ messages in thread
From: Dor Laor @ 2007-12-18 12:50 UTC (permalink / raw)
  To: Cam Macdonell; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f


[-- Attachment #1.1: Type: text/plain, Size: 1850 bytes --]

Cam Macdonell wrote:
>
> Dor Laor wrote:
> > Cam Macdonell wrote:
> >> Dor Laor wrote:
> >>> Christian Borntraeger wrote:
> >>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> >>>>> Christian Borntraeger wrote:
> >>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
> >>>>>>> --- a/drivers/net/virtio_net.c
> >>>>>>> +++ b/drivers/net/virtio_net.c
> >>>>>>> @@ -406,10 +405,10 @@ again:
> >>>>>> Hmm, while I agree in general with the patch, I fail to find the
> >>>> proper
> >>>>>> version of virtio_net where this patch applies. I tried kvm.git and
> >>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
> >>>> repository
> >>>>>> where you work on virtio?
> >>>>>>
> >>>>> Sorry for that, I added some debug prints of my one.
> >>>>> Here it is: *git clone
> >>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch
> >>>> 'virtio'.
> >>>>
> >>
> >> Hi Dor,
> >>
> >> Which userspace repo is usable with the above repo?
> >>
> >> Thanks,
> >> Cam
> >>
> > git://kvm.qumranet.com/home/dor/src/kvm-nv use branch
>
> Hi Dor,
>
> I think you forgot a word after branch above.  Also, I get the following
> error when I try clone the userspace repo.
>
> cam@madhatter:~/src/KVM$ git clone
> git://kvm.qumranet.com/home/dor/src/kvm-nv
> Initialized empty Git repository in /home/cam/src/KVM/kvm-nv/.git/
> fatal: The remote end hung up unexpectedly
> fetch-pack from 'git://kvm.qumranet.com/home/dor/src/kvm-nv' failed.
>
> Thanks,
> Cam
>
Sorry here are the two repositories:

Kernel: git://people.qumranet.com/home/dor/src/linux-2.6-nv
User: git://people.qumranet.com/home/dor/src/kvm-nv
Please use 'virtio' branch for both repositories.

Thanks,
Dor.

BTW: I maid some performance improvements and I get 900Mbps for tx and 
800Mbps for rx.
I intend to send these changes to Avi to incorporate in mainline KVM.


[-- Attachment #1.2: Type: text/html, Size: 3051 bytes --]

[-- Attachment #2: Type: text/plain, Size: 308 bytes --]

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

[-- Attachment #3: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]   ` <200712181101.14916.rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
  2007-12-18  5:30     ` Avi Kivity
@ 2007-12-18 12:55     ` Dor Laor
  1 sibling, 0 replies; 16+ messages in thread
From: Dor Laor @ 2007-12-18 12:55 UTC (permalink / raw)
  To: Rusty Russell; +Cc: kvm-devel, netdev-u79uwXL29TY76Z2rM5mHXA, virtualization


[-- Attachment #1.1: Type: text/plain, Size: 1942 bytes --]

Rusty Russell wrote:
> On Wednesday 12 December 2007 23:54:00 Dor Laor wrote:
>   
>> commit 763769621d271d92204ed27552d75448587c1ac0
>> Author: Dor Laor <dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
>> Date:   Wed Dec 12 14:52:00 2007 +0200
>>
>>     [virtio-net][PATCH] Don't arm tx hrtimer with a constant 50us each
>> transmit
>>
>>     The current start_xmit sets 500us hrtimer to kick the host.
>>     The problem is that if another xmit happens before the timer was
>> fired then
>>     the first xmit will have to wait additional 500us.
>>     This patch does not re-arm the timer if there is existing one.
>>     This will shorten the latency for tx.
>>     
>
> Hi Dor!
>
>     Yes, I pondered this when I wrote the code.  On the one hand, it's a 
> low-probability pathological corner case, on the other, your patch reduces 
> the number of timer reprograms in the normal case.
>
> So I've applied it, thanks!
> Rusty.
>
>
>   
Thanks, it actually improved my tx performance in 20%!
Expecting the host side timer with your new patch.
Cheers,
Dor.
>
>
>   
>>     Signed-off-by: Dor Laor <dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> index 7b051d5..8bb17d1
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -406,10 +405,10 @@ again:
>>          virtio_debug(vdebug, "%s: before calling kick %d\n",
>> __FUNCTION__, __LINE__);
>>          vi->svq->vq_ops->kick(vi->svq);
>>          vi->out_num = 0;
>> -    } else {
>> -        vi->stats.hrtimer_starts++;
>> -        hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
>> -                  HRTIMER_MODE_REL);
>> +    } else if (!hrtimer_is_queued(&vi->tx_timer)) {
>> +            vi->stats.hrtimer_starts++;
>> +            hrtimer_start(&vi->tx_timer, ktime_set(0,500000),
>> +                      HRTIMER_MODE_REL);
>>      }
>>      return 0;
>>  }
>>     
>
>
>
>   


[-- Attachment #1.2: Type: text/html, Size: 2755 bytes --]

[-- Attachment #2: Type: text/plain, Size: 308 bytes --]

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

[-- Attachment #3: Type: text/plain, Size: 186 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]                       ` <4766DEB2.5050601-edFDblaTWIyXbbII50Afww@public.gmane.org>
  2007-12-18 12:50                         ` Dor Laor
@ 2007-12-18 18:42                         ` Cam Macdonell
       [not found]                           ` <47681499.8080205-edFDblaTWIyXbbII50Afww@public.gmane.org>
  1 sibling, 1 reply; 16+ messages in thread
From: Cam Macdonell @ 2007-12-18 18:42 UTC (permalink / raw)
  To: dor.laor-atKUWr5tajBWk0Htik3J/w
  Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Cam Macdonell wrote:
> Dor Laor wrote:
>> Cam Macdonell wrote:
>>> Dor Laor wrote:
>>>> Christian Borntraeger wrote:
>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>> Christian Borntraeger wrote:
>>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>>> --- a/drivers/net/virtio_net.c
>>>>>>>> +++ b/drivers/net/virtio_net.c
>>>>>>>> @@ -406,10 +405,10 @@ again:
>>>>>>> Hmm, while I agree in general with the patch, I fail to find the 
>>>>> proper
>>>>>>> version of virtio_net where this patch applies. I tried kvm.git and
>>>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>>>>> repository
>>>>>>> where you work on virtio?
>>>>>>>
>>>>>> Sorry for that, I added some debug prints of my one.
>>>>>> Here it is: *git clone
>>>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>>>>> 'virtio'.
>>>>>
>>> Hi Dor,
>>>
>>> Which userspace repo is usable with the above repo?
>>>
>>> Thanks,
>>> Cam
>>>
>> git://kvm.qumranet.com/home/dor/src/kvm-nv use branch
> 
> Hi Dor,
> 
> I think you forgot a word after branch above.  Also, I get the following 
> error when I try clone the userspace repo.
> 
> cam@madhatter:~/src/KVM$ git clone 
> git://kvm.qumranet.com/home/dor/src/kvm-nv
> Initialized empty Git repository in /home/cam/src/KVM/kvm-nv/.git/
> fatal: The remote end hung up unexpectedly
> fetch-pack from 'git://kvm.qumranet.com/home/dor/src/kvm-nv' failed.
> 

Ok, it works now, however, I'm getting an unknown symbol error when 
loading kvm in to kernel

cam@madhatter:~/src/KVM/dor$ sudo modprobe kvm
FATAL: Error inserting kvm 
(/lib/modules/2.6.22-14-generic/extra/kvm.ko): Unknown symbol in module, 
or unknown parameter (see dmesg)

dmesg output:
[89681.960000] kvm: Unknown symbol __fls

Do you know what might be causing this?

Thanks,
Cam

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]                           ` <47681499.8080205-edFDblaTWIyXbbII50Afww@public.gmane.org>
@ 2007-12-18 23:38                             ` Cam Macdonell
       [not found]                               ` <476859DE.80208-edFDblaTWIyXbbII50Afww@public.gmane.org>
  0 siblings, 1 reply; 16+ messages in thread
From: Cam Macdonell @ 2007-12-18 23:38 UTC (permalink / raw)
  To: dor.laor-atKUWr5tajBWk0Htik3J/w
  Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Cam Macdonell wrote:
> Cam Macdonell wrote:
>> Dor Laor wrote:
>>> Cam Macdonell wrote:
>>>> Dor Laor wrote:
>>>>> Christian Borntraeger wrote:
>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>> Christian Borntraeger wrote:
>>>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>>>> --- a/drivers/net/virtio_net.c
>>>>>>>>> +++ b/drivers/net/virtio_net.c
>>>>>>>>> @@ -406,10 +405,10 @@ again:
>>>>>>>> Hmm, while I agree in general with the patch, I fail to find the 
>>>>>> proper
>>>>>>>> version of virtio_net where this patch applies. I tried kvm.git and
>>>>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>>>>>> repository
>>>>>>>> where you work on virtio?
>>>>>>>>
>>>>>>> Sorry for that, I added some debug prints of my one.
>>>>>>> Here it is: *git clone
>>>>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>>>>>> 'virtio'.
>>>>>>
>>>> Hi Dor,
>>>>
>>>> Which userspace repo is usable with the above repo?
>>>>
>>>> Thanks,
>>>> Cam
>>>>
>>> git://kvm.qumranet.com/home/dor/src/kvm-nv use branch
>> Hi Dor,
>>
>> I think you forgot a word after branch above.  Also, I get the following 
>> error when I try clone the userspace repo.
>>
>> cam@madhatter:~/src/KVM$ git clone 
>> git://kvm.qumranet.com/home/dor/src/kvm-nv
>> Initialized empty Git repository in /home/cam/src/KVM/kvm-nv/.git/
>> fatal: The remote end hung up unexpectedly
>> fetch-pack from 'git://kvm.qumranet.com/home/dor/src/kvm-nv' failed.
>>
> 
> Ok, it works now, however, I'm getting an unknown symbol error when 
> loading kvm in to kernel
> 
> cam@madhatter:~/src/KVM/dor$ sudo modprobe kvm
> FATAL: Error inserting kvm 
> (/lib/modules/2.6.22-14-generic/extra/kvm.ko): Unknown symbol in module, 
> or unknown parameter (see dmesg)
> 
> dmesg output:
> [89681.960000] kvm: Unknown symbol __fls
> 

Hi Dor,

It seems this is a 32 v 64-bit issue.  I'm running a 32-bit system.  The 
asm-x86/bitops_64.h defines __fls whereas asm-x86/bitops_32.h defines 
fls.  Simply replacing __fls with fls allows the module to load into the 
kernel and I am able to boot VMs with it.

I hope that helps.

Cam

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

* Re: [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit
       [not found]                               ` <476859DE.80208-edFDblaTWIyXbbII50Afww@public.gmane.org>
@ 2007-12-19  8:25                                 ` Dor Laor
  0 siblings, 0 replies; 16+ messages in thread
From: Dor Laor @ 2007-12-19  8:25 UTC (permalink / raw)
  To: Cam Macdonell; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Cam Macdonell wrote:
> Cam Macdonell wrote:
>> Cam Macdonell wrote:
>>> Dor Laor wrote:
>>>> Cam Macdonell wrote:
>>>>> Dor Laor wrote:
>>>>>> Christian Borntraeger wrote:
>>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>>> Christian Borntraeger wrote:
>>>>>>>>> Am Mittwoch, 12. Dezember 2007 schrieb Dor Laor:
>>>>>>>>>> --- a/drivers/net/virtio_net.c
>>>>>>>>>> +++ b/drivers/net/virtio_net.c
>>>>>>>>>> @@ -406,10 +405,10 @@ again:
>>>>>>>>> Hmm, while I agree in general with the patch, I fail to find the 
>>>>>>> proper
>>>>>>>>> version of virtio_net where this patch applies. I tried 
>>>>>>>>> kvm.git and
>>>>>>>>> linux-2.6.git from kernel.org. Can you give me a pointer to the
>>>>>>> repository
>>>>>>>>> where you work on virtio?
>>>>>>>>>
>>>>>>>> Sorry for that, I added some debug prints of my one.
>>>>>>>> Here it is: *git clone
>>>>>>>> git*://kvm.*qumranet*.com/home/*dor*/src/linux-2.6-nv use branch 
>>>>>>> 'virtio'.
>>>>>>>
>>>>> Hi Dor,
>>>>>
>>>>> Which userspace repo is usable with the above repo?
>>>>>
>>>>> Thanks,
>>>>> Cam
>>>>>
>>>> git://kvm.qumranet.com/home/dor/src/kvm-nv use branch
>>> Hi Dor,
>>>
>>> I think you forgot a word after branch above.  Also, I get the 
>>> following error when I try clone the userspace repo.
>>>
>>> cam@madhatter:~/src/KVM$ git clone 
>>> git://kvm.qumranet.com/home/dor/src/kvm-nv
>>> Initialized empty Git repository in /home/cam/src/KVM/kvm-nv/.git/
>>> fatal: The remote end hung up unexpectedly
>>> fetch-pack from 'git://kvm.qumranet.com/home/dor/src/kvm-nv' failed.
>>>
>>
>> Ok, it works now, however, I'm getting an unknown symbol error when 
>> loading kvm in to kernel
>>
>> cam@madhatter:~/src/KVM/dor$ sudo modprobe kvm
>> FATAL: Error inserting kvm 
>> (/lib/modules/2.6.22-14-generic/extra/kvm.ko): Unknown symbol in 
>> module, or unknown parameter (see dmesg)
>>
>> dmesg output:
>> [89681.960000] kvm: Unknown symbol __fls
>>
>
> Hi Dor,
>
> It seems this is a 32 v 64-bit issue.  I'm running a 32-bit system.  
> The asm-x86/bitops_64.h defines __fls whereas asm-x86/bitops_32.h 
> defines fls.  Simply replacing __fls with fls allows the module to 
> load into the kernel and I am able to boot VMs with it.
>
> I hope that helps.
>
> Cam
>
Good, anyway the __fls is part of unneeded commit that I need to revert.
Thanks, Dor

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

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

end of thread, other threads:[~2007-12-19  8:25 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-12 12:54 [virtio-net][PATCH] Don't arm tx hrtimer with a constant 500us each transmit Dor Laor
2007-12-12 13:19 ` [kvm-devel] " Christian Borntraeger
2007-12-12 14:17   ` Dor Laor
2007-12-12 16:33     ` Christian Borntraeger
     [not found]       ` <200712121733.07804.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-12-13  8:44         ` Dor Laor
     [not found]           ` <4760F0EA.7010004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-14 17:19             ` Cam Macdonell
     [not found]               ` <4762BB1A.4020905-edFDblaTWIyXbbII50Afww@public.gmane.org>
2007-12-16 10:13                 ` Dor Laor
     [not found]                   ` <4764FA5E.3070104-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-17 20:40                     ` Cam Macdonell
     [not found]                       ` <4766DEB2.5050601-edFDblaTWIyXbbII50Afww@public.gmane.org>
2007-12-18 12:50                         ` Dor Laor
2007-12-18 18:42                         ` Cam Macdonell
     [not found]                           ` <47681499.8080205-edFDblaTWIyXbbII50Afww@public.gmane.org>
2007-12-18 23:38                             ` Cam Macdonell
     [not found]                               ` <476859DE.80208-edFDblaTWIyXbbII50Afww@public.gmane.org>
2007-12-19  8:25                                 ` Dor Laor
2007-12-18  0:01 ` Rusty Russell
     [not found]   ` <200712181101.14916.rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
2007-12-18  5:30     ` Avi Kivity
     [not found]       ` <47675AE0.8050808-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-18  7:24         ` Rusty Russell
2007-12-18 12:55     ` Dor Laor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox