Re: [PATCH 5/7] FUSE: implement ioctl support
From: H. Peter Anvin
Date: Thu Aug 28 2008 - 16:21:50 EST
Miklos Szeredi wrote:
On Thu, 28 Aug 2008, H. Peter Anvin wrote:
Tejun Heo wrote:
Ah.... funky. If this retry thing is too repulsive, I guess the best
alternative would be directly accessing caller's memory as Miklos suggested.
Be careful -- there are some serious dragons there in the presence of
multiple threads.
OK, it should map /proc/pid/task/tid/mem. Or rather
/proc/tid/task/tid/mem, as the pid (tgid) of the caller is not
currently passed to the filesystem.
Uhm, no. You can still have it change underneath you as long as you
have any thread of execution with access to the same memory.
This is *hard* to get right, and we screw this up in the kernel with
painful regularity. The throught of having user-space processes, which
don't have access to the kernel locking primitives and functions like
copy_from_user() dealing with this stuff scares me crazy.
That is why I'm suggesting using an in-kernel linearizer.
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/