[PATCH 0/2 V2] Allow access to sysfs attributes without mem allocations.
Date: Wed Oct 08 2014 - 19:58:21 EST
thanks for the review. This version incorporates your suggestions.
You are certainly right about there being issues deeper than just the
sysfs/kernfs level - I've been cleaning up the locking in md to avoid
the "reconfig_mutex" as much as possible. It is something that has
been at the back of my mind for a while, but this need has pushed it
to the fore-front. All the attributes that mdmon needs to touch will
soon only take a spinlock or nothing.
On the topic of inadvertently locking in semantics, I noticed that
prior to kernfs, sysfs would allocate a buffer on first read or
write, and continue to use that buffer. I could try to argue that I
was using those semantics, which have now changed ... though I wasn't
doing it consciously... Certainly this is a thorny issue.
As well as checking that ->seq_show isn't used with ->prealloc,
I've also made sure that sysfs_kf_read() doesn't call the attribute
->show() function unless it is certain it has a preallocated (and
hence >= PAGE_SIZE) buffer.
sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
sysfs/kernfs: make read requests on pre-alloc files use the buffer.
fs/kernfs/file.c | 70 ++++++++++++++++++++++++++++++++----------------
fs/sysfs/file.c | 53 +++++++++++++++++++++++++++++++-----
include/linux/kernfs.h | 2 +
include/linux/sysfs.h | 9 ++++++
4 files changed, 103 insertions(+), 31 deletions(-)
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/