Displaying 7 results from an estimated 7 matches for "p9_client_read".
2013 Dec 06
1
[PATCH] 9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers
...t; + if (is_vmalloc_or_module_addr(data))
>
> Can this really end up being a module address?
Yes. Here is the stacktrace to prove it:
[<ffffffff814878ce>] p9_virtio_zc_request+0x45e/0x510
[<ffffffff814814ed>] p9_client_zc_rpc.constprop.16+0xfd/0x4f0
[<ffffffff814839dd>] p9_client_read+0x15d/0x240
[<ffffffff811c8440>] v9fs_fid_readn+0x50/0xa0
[<ffffffff811c84a0>] v9fs_file_readn+0x10/0x20
[<ffffffff811c84e7>] v9fs_file_read+0x37/0x70
[<ffffffff8114e3fb>] vfs_read+0x9b/0x160
[<ffffffff81153571>] kernel_read+0x41/0x60
[<ffffffff810c83ab>] copy_mo...
2013 Dec 06
1
[PATCH] 9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers
...t; + if (is_vmalloc_or_module_addr(data))
>
> Can this really end up being a module address?
Yes. Here is the stacktrace to prove it:
[<ffffffff814878ce>] p9_virtio_zc_request+0x45e/0x510
[<ffffffff814814ed>] p9_client_zc_rpc.constprop.16+0xfd/0x4f0
[<ffffffff814839dd>] p9_client_read+0x15d/0x240
[<ffffffff811c8440>] v9fs_fid_readn+0x50/0xa0
[<ffffffff811c84a0>] v9fs_file_readn+0x10/0x20
[<ffffffff811c84e7>] v9fs_file_read+0x37/0x70
[<ffffffff8114e3fb>] vfs_read+0x9b/0x160
[<ffffffff81153571>] kernel_read+0x41/0x60
[<ffffffff810c83ab>] copy_mo...
2013 Nov 26
0
QEMU dies on any attempt to load a Linux kernel module when using a 9P rootfs
...o-copy hack for a few months. Let me know if there's
> anything I can help with.
>
> Christopher
>
-------------- next part --------------
diff --git a/net/9p/client.c b/net/9p/client.c
index ee8fd6b..0adfcf5 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -1557,7 +1557,9 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
rsize = count;
/* Don't bother zerocopy for small IO (< 1024) */
- if (clnt->trans_mod->zc_request && rsize > 1024) {
+ if (clnt->trans_mod->zc_request && rsize > 1024 &&
+ !(uda...
2013 Nov 26
2
QEMU dies on any attempt to load a Linux kernel module when using a 9P rootfs
Hi Richard,
On 11/25/2013 04:50 PM, Richard Yao wrote:
> I figured out the problem. There is zerocopy IO is being done via DMA to
> a buffer allocated with valloc(). Right now, I am running a hack-fix
> locally so I can get some other stuff done first. I will propose a
> proper fix to the list in a few days.
I've also encountered this issue on a non-QEMU simulator and have been
2013 Nov 26
2
QEMU dies on any attempt to load a Linux kernel module when using a 9P rootfs
Hi Richard,
On 11/25/2013 04:50 PM, Richard Yao wrote:
> I figured out the problem. There is zerocopy IO is being done via DMA to
> a buffer allocated with valloc(). Right now, I am running a hack-fix
> locally so I can get some other stuff done first. I will propose a
> proper fix to the list in a few days.
I've also encountered this issue on a non-QEMU simulator and have been
2013 Dec 04
3
[PATCH] 9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers
The 9p-virtio transport does zero copy on things larger than 1024 bytes
in size. It accomplishes this by returning the physical addresses of
pages to the virtio-pci device. At present, the translation is usually a
bit shift.
However, that approach produces an invalid page address when we
read/write to vmalloc buffers, such as those used for Linux kernle
modules. This causes QEMU to die printing:
2013 Dec 04
3
[PATCH] 9p/trans_virtio.c: Fix broken zero-copy on vmalloc() buffers
The 9p-virtio transport does zero copy on things larger than 1024 bytes
in size. It accomplishes this by returning the physical addresses of
pages to the virtio-pci device. At present, the translation is usually a
bit shift.
However, that approach produces an invalid page address when we
read/write to vmalloc buffers, such as those used for Linux kernle
modules. This causes QEMU to die printing: