Thread (19 messages) 19 messages, 6 authors, 2018-11-30

Re: [PULL] vhost: cleanups and fixes

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2018-11-02 19:01:42
Also in: kvm, lkml

On Fri, Nov 02, 2018 at 10:15:56AM -0700, Linus Torvalds wrote:
On Fri, Nov 2, 2018 at 10:10 AM Linus Torvalds
[off-list ref] wrote:
quoted
Don't you take over the VM with "use_mm()" when you do the copies? So
yes, it's a kernel thread, but it has a user VM, and though that
should have the user limits.
Oooh. *Just* as I sent this, I realized that "use_mm()" doesn't update
the thread addr_limit.

That actually looks like a bug to me - although one that you've
apparently been aware of and worked around.

Wouldn't it be nicer to just make "use_mm()" do

        set_fs(USER_DS);

instead? And undo it on unuse_mm()?

And, in fact, maybe we should default kernel threads to have a zero
address limit, so that they can't do any user accesses at all without
doing this?
Try it and watch it fail to set initramfs up, let alone exec the init...
Adding Al to the cc, because I think he's been looking at set_fs() in general.
It would be the right thing (with return to KERNEL_DS), but I'm not certain
if GPU users will survive - these two
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h:157:                         use_mm(mmptr);                          \
drivers/gpu/drm/i915/gvt/kvmgt.c:1799:          use_mm(kvm->mm);
I don't understand the call chains there (especially for the first one) well
enough to tell.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help