Re: [PATCH 2/4] virtio-net: add support of UDP segmentation (USO) on the host

2021-05-12 Thread Willem de Bruijn
On Wed, May 12, 2021 at 2:56 PM Yuri Benditovich wrote: > > On Wed, May 12, 2021 at 5:33 PM Willem de Bruijn > wrote: > > > > On Wed, May 12, 2021 at 2:10 AM Yuri Benditovich > > wrote: > > > > > > On Tue, May 11, 2021 at 8:48 PM Willem de Bruijn > > > wrote: > > > > > > > > On Tue, May 11,

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Joerg Roedel
On Wed, May 12, 2021 at 08:57:53AM -0700, Dave Hansen wrote: > The changelog _helps_, but using a "user" function to handle kernel MMIO > for its error handling properties seems like it's begging for a comment. > > __put_user() also seems to have fun stuff like __chk_user_ptr(). It all > seems

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Dave Hansen
On 5/12/21 1:37 AM, 'Joerg Roedel' wrote: > I also thought about adding page_fault_disable()/page_fault_enable() > calls, but being in atomic context is enough according to the > faulthandler_disabled() implementation. That would be nice to add to a comment:

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Dave Hansen
On 5/12/21 12:54 AM, Joerg Roedel wrote: > The put_user() and get_user() functions do checks on the address which is > passed to them. They check whether the address is actually a user-space > address and whether its fine to access it. They also call might_fault() > to indicate that they could

Re: [PATCH -next] iommu/virtio: Add missing MODULE_DEVICE_TABLE

2021-05-12 Thread Jean-Philippe Brucker
On Sat, May 08, 2021 at 11:14:51AM +0800, Bixuan Cui wrote: > This patch adds missing MODULE_DEVICE_TABLE definition which generates > correct modalias for automatic loading of this driver when it is built > as an external module. > > Reported-by: Hulk Robot > Signed-off-by: Bixuan Cui Fixes:

Re: [PATCH 2/4] virtio-net: add support of UDP segmentation (USO) on the host

2021-05-12 Thread Willem de Bruijn
On Wed, May 12, 2021 at 2:10 AM Yuri Benditovich wrote: > > On Tue, May 11, 2021 at 8:48 PM Willem de Bruijn > wrote: > > > > On Tue, May 11, 2021 at 12:43 AM Yuri Benditovich > > wrote: > > > > > > Large UDP packet provided by the guest with GSO type set to > > > VIRTIO_NET_HDR_GSO_UDP_L4 will

RE: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread David Laight
From: Juergen Gross > Sent: 12 May 2021 09:58 > > On 12.05.21 10:50, 'Joerg Roedel' wrote: > > On Wed, May 12, 2021 at 10:16:12AM +0200, Juergen Gross wrote: > >> You want something like xen_safe_[read|write]_ulong(). > > > > From a first glance I can't see it, what is the difference between the

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Joerg Roedel
On Wed, May 12, 2021 at 10:58:20AM +0200, Juergen Gross wrote: > No, those were used before, but commit 9da3f2b7405440 broke Xen's use > case. That is why I did commit 1457d8cf7664f. I see, thanks for the heads-up. So here this is not a big issue, because when an access to kernel space faults

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Juergen Gross via Virtualization
On 12.05.21 10:50, 'Joerg Roedel' wrote: On Wed, May 12, 2021 at 10:16:12AM +0200, Juergen Gross wrote: You want something like xen_safe_[read|write]_ulong(). From a first glance I can't see it, what is the difference between the xen_safe_*_ulong() functions and __get_user()/__put_user()?

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread 'Joerg Roedel'
On Wed, May 12, 2021 at 10:16:12AM +0200, Juergen Gross wrote: > You want something like xen_safe_[read|write]_ulong(). >From a first glance I can't see it, what is the difference between the xen_safe_*_ulong() functions and __get_user()/__put_user()? The only difference I can see is that

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread 'Joerg Roedel'
On Wed, May 12, 2021 at 08:04:33AM +, David Laight wrote: > That can't be right at all. > __put/get_user() are only valid on user addresses and will try to > fault in a missing page - so can sleep. Yes, in general these functions can sleep, but not in this context. They are called in atomic

Re: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Juergen Gross via Virtualization
On 12.05.21 10:04, David Laight wrote: From: Joerg Sent: 12 May 2021 08:55 From: Joerg Roedel The put_user() and get_user() functions do checks on the address which is passed to them. They check whether the address is actually a user-space address and whether its fine to access it. They also

RE: [PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread David Laight
From: Joerg > Sent: 12 May 2021 08:55 > > From: Joerg Roedel > > The put_user() and get_user() functions do checks on the address which is > passed to them. They check whether the address is actually a user-space > address and whether its fine to access it. They also call might_fault() > to

[PATCH 3/6] x86/sev-es: Use __put_user()/__get_user

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel The put_user() and get_user() functions do checks on the address which is passed to them. They check whether the address is actually a user-space address and whether its fine to access it. They also call might_fault() to indicate that they could fault and possibly sleep. All

[PATCH 0/6] x86/sev-es: Fixes for SEV-ES guest support

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel Hi, here is a collection of fixes for the SEV-ES guest support. They fix simple and more severe issues and are all targeted for v5.13. The most important fixes are the revert of 7024f60d6552 which just doesn't work in any context the #VC handler could run and the fix to

[PATCH 1/6] x86/sev-es: Don't return NULL from sev_es_get_ghcb()

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel The sev_es_get_ghcb() is called from several places, but only one of them checks the return value. The reaction to returning NULL is always the same: Calling panic() and kill the machine. Instead of adding checks to all call-places, move the panic() into the function itself

[PATCH 4/6] Revert "x86/sev-es: Handle string port IO to kernel memory properly"

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel This reverts commit 7024f60d655272bd2ca1d3a4c9e0a63319b1eea1. The commit reverted here introduces a short-cut into the #VC handlers memory access code which only works reliably in task context. But the kernels #VC handler can be invoked from any context, making the

[PATCH 5/6] x86/sev-es: Fix error message in runtime #VC handler

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel The runtime #VC handler is not "early" anymore. Fix the copy error and remove that word from the error message. Signed-off-by: Joerg Roedel --- arch/x86/kernel/sev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/sev.c

[PATCH 2/6] x86/sev-es: Forward page-faults which happen during emulation

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel When emulating guest instructions for MMIO or IOIO accesses the #VC handler might get a page-fault and will not be able to complete. Forward the page-fault in this case to the correct handler instead of killing the machine. Fixes: 0786138c78e7 ("x86/sev-es: Add a Runtime #VC

[PATCH 6/6] x86/sev-es: Leave NMI-mode before sending signals

2021-05-12 Thread Joerg Roedel
From: Joerg Roedel The error path in the runtime #VC handler sends a signal to kill the current task if the exception was raised from user-space. Some parts of the #VC handler run in NMI mode, because it is critical that it is not interrupted (except from an NMI) while the GHCB is in use. But

Re: [RFC PATCH] vdpa: mandate 1.0 device

2021-05-12 Thread Michael S. Tsirkin
On Tue, May 11, 2021 at 04:43:13AM -0400, Jason Wang wrote: > > > - 原始邮件 - > > > > 在 2021/4/21 下午4:03, Michael S. Tsirkin 写道: > > > On Wed, Apr 21, 2021 at 03:41:36PM +0800, Jason Wang wrote: > > >> 在 2021/4/12 下午5:23, Jason Wang 写道: > > >>> 在 2021/4/12 下午5:09, Michael S. Tsirkin 写道: >

Re: [PATCH 2/4] virtio-net: add support of UDP segmentation (USO) on the host

2021-05-12 Thread Yuri Benditovich
On Tue, May 11, 2021 at 8:48 PM Willem de Bruijn wrote: > > On Tue, May 11, 2021 at 12:43 AM Yuri Benditovich > wrote: > > > > Large UDP packet provided by the guest with GSO type set to > > VIRTIO_NET_HDR_GSO_UDP_L4 will be divided to several UDP > > packets according to the gso_size field. > >