https://bugzilla.kernel.org/show_bug.cgi?id=42829


Jason Wang <jasow...@redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jasow...@redhat.com




--- Comment #12 from Jason Wang <jasow...@redhat.com>  2012-03-06 02:56:08 ---
(In reply to comment #11)
> I found bad commit.
> 
> git bisect log:
> ---------------
> git bisect start
> # bad: [550cf00dbc8ee402bef71628cb71246493dd4500] Merge tag 
> 'mmc-fixes-for-3.3'
> of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
> git bisect bad 550cf00dbc8ee402bef71628cb71246493dd4500
> # good: [61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf] Linux 2.6.39
> git bisect good 61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf
> # bad: [8a9ea3237e7eb5c25f09e429ad242ae5a3d5ea22] Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
> git bisect bad 8a9ea3237e7eb5c25f09e429ad242ae5a3d5ea22
> # bad: [95a943c162d74b20d869917bdf5df11293c35b63] Merge branch 'master' of
> git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into
> for-davem
> git bisect bad 95a943c162d74b20d869917bdf5df11293c35b63
> # good: [98b98d316349e9a028e632629fe813d07fa5afdd] Merge branch 
> 'drm-core-next'
> of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
> git bisect good 98b98d316349e9a028e632629fe813d07fa5afdd
> # bad: [1f6e44a6dc21a5d2abb068063acbbf64f8cee548] pxa168_eth: enable transmit
> time stamping.
> git bisect bad 1f6e44a6dc21a5d2abb068063acbbf64f8cee548
> # good: [19de85ef574c3a2182e3ccad9581805052f14946] bitops: add #ifndef for 
> each
> of find bitops
> git bisect good 19de85ef574c3a2182e3ccad9581805052f14946
> # good: [c320afe965bf3f857249d223801d8f2fc95615c2] Blackfin: debug-mmrs:
> include RSI_PID[4567] MMRs
> git bisect good c320afe965bf3f857249d223801d8f2fc95615c2
> # bad: [23c79d31a3dd2602ee1a5ff31303b2d7a2d3c159] Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
> git bisect bad 23c79d31a3dd2602ee1a5ff31303b2d7a2d3c159
> # good: [cd1acdf1723d71b28175f95b04305f1cc74ce363] Merge branch 'pnfs-submit'
> of git://git.open-osd.org/linux-open-osd
> git bisect good cd1acdf1723d71b28175f95b04305f1cc74ce363
> # bad: [cd4ecf877a4d629c38571405fd649077c12dec50] Merge branch
> 'rmobile-fixes-for-linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
> git bisect bad cd4ecf877a4d629c38571405fd649077c12dec50
> # bad: [5c6cce92bc8aee751aafe82c5d9caf7553226a3d] Merge branch 'for-linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
> git bisect bad 5c6cce92bc8aee751aafe82c5d9caf7553226a3d
> # bad: [8ea8cf89e19aeb596b818ee5f2bec8a8b0586b60] vhost: support event index
> git bisect bad 8ea8cf89e19aeb596b818ee5f2bec8a8b0586b60
> # good: [bc805a03c26e1e25171bc627c6264553d27f746c] lguest: fix up compilation
> after move
> git bisect good bc805a03c26e1e25171bc627c6264553d27f746c
> # good: [bf50e69f63d21091e525185c3ae761412be0ba72] virtio balloon: kill
> tell-host-first logic
> git bisect good bf50e69f63d21091e525185c3ae761412be0ba72
> # good: [770b31a85e000b0194974922f238a30ade4246b6] virtio: event index
> interface
> git bisect good 770b31a85e000b0194974922f238a30ade4246b6
> # bad: [a5c262c5fd83ece01bd649fb08416c501d4c59d7] virtio_ring: support event
> idx feature
> git bisect bad a5c262c5fd83ece01bd649fb08416c501d4c59d7
> # good: [bf7035bf20563a6cadcb9e870406e7b21daf5e30] virtio ring: inline 
> function
> to check for events
> git bisect good bf7035bf20563a6cadcb9e870406e7b21daf5e30
> 
> 
> git bisect message:
> ===================
> a5c262c5fd83ece01bd649fb08416c501d4c59d7 is the first bad commit
> commit a5c262c5fd83ece01bd649fb08416c501d4c59d7
> Author: Michael S. Tsirkin <m...@redhat.com>
> Date:   Fri May 20 02:10:44 2011 +0300
> 
>     virtio_ring: support event idx feature
> 
>     Support for the new event idx feature:
>     1. When enabling interrupts, publish the current avail index
>        value to the host to get interrupts on the next update.
>     2. Use the new avail_event feature to reduce the number
>        of exits from the guest.
> 
>     Simple test with the simulator:
> 
>     [virtio]# time ./virtio_test
>     spurious wakeus: 0x7
> 
>     real    0m0.169s
>     user    0m0.140s
>     sys     0m0.019s
>     [virtio]# time ./virtio_test --no-event-idx
>     spurious wakeus: 0x11
> 
>     real    0m0.649s
>     user    0m0.295s
>     sys     0m0.335s
> 
>     Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
>     Signed-off-by: Rusty Russell <ru...@rustcorp.com.au>
> 
> :040000 040000 933903414419858cf7402aa3fb8c3f675d6ab7cc
> 0ed603da4671eef88e0702e6438e903b56688b62 M      drivers
> 
> 
> 
> I found bug in include/linux/virtio_ring.h:
> ===========================================
> 
> virtio: event index interface
> author    Michael S. Tsirkin <m...@redhat.com>    
> Thu, 19 May 2011 23:10:17 +0000 (02:10 +0300)
> committer    Rusty Russell <ru...@rustcorp.com.au>    
> Mon, 30 May 2011 01:44:14 +0000 (10:44 +0930)
> commit    770b31a85e000b0194974922f238a30ade4246b6
> tree    eed81e23f3116858b49af76bcc5831c38662de96    tree | snapshot
> parent    a1b383870a28cfbd1657d4922c0fafc634a62ebd    commit | diff
> virtio: event index interface
> 
> Define a new feature bit for the guest and host to utilize
> an event index (like Xen) instead if a flag bit to enable/disable
> interrupts and kicks.
> 
> Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
> Signed-off-by: Rusty Russell <ru...@rustcorp.com.au>
> 
> 
> Proposal for fix - wrong order of elements in structs:
> ------------------------------------------------------
> 
>  struct vring_desc {
>         /* Address (guest-physical). */
> @@ -106,6 +112,7 @@ struct vring {
>   *     __u16 avail_flags;
>   *     __u16 avail_idx;
> + *     __u16 used_event_idx;
>   *     __u16 available[num];
> - *     __u16 used_event_idx;
>   *
>   *     // Padding to the next align boundary.
>   *     char pad[];
> @@ -114,8 +121,14 @@ struct vring {
>   *     __u16 used_flags;
>   *     __u16 used_idx;
> + *     __u16 avail_event_idx;
>   *     struct vring_used_elem used[num];
> - *     __u16 avail_event_idx;
>   * };
> 
> 
> Also double check macros:
> vring_used_event
> vring_avail_event
> 
> Please fix this issue.
> 
> Thank you for your time.

Hi Steve, does this patch fixes your issue? The patch looks not correct as the
event index were supposed in the end of the vring, see virtio spec:
http://ozlabs.org/~rusty/virtio-spec/virtio-0.9.4.pdf

And please make sure the tree you used contains the fixes of commit
a72caae21803b74e04e2afda5e035f149d4ea118 and commit
4dbc5d9f4f791df8a5879f4a655f517adc7f56d1

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to