[PATCH 0/2] cifs: fix kmap deadlock on CONFIG_HIGHMEM machines with large r/wsizes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The current read/write code in cifs.ko relies on being able to kmap all
of the data at once. This is a problem on machines with high memory.
kmap addresses are a limited resource and you can easily end up
exhausting it if your rsize/wsize is too large.

One such report of this problem is here:

    https://bugzilla.redhat.com/show_bug.cgi?id=832252

This patchset is intended as a temporary workaround on those machines
that should help prevent that sort of exhaustion.

The right fix for this is to teach the code how to deal with lists of
pages directly instead of relying on being able to kmap them all. I have
a patchset in progress that does just that, but it's not complete yet
and is pretty invasive. Until that's ready, I think this set is a
reasonable workaround.

Jeff Layton (2):
  cifs: on CONFIG_HIGHMEM machines, limit the rsize/wsize to the kmap
    space
  cifs: when CONFIG_HIGHMEM is set, serialize the read/write kmaps

 fs/cifs/cifssmb.c |   30 +++++++++++++++++++++++++++++-
 fs/cifs/connect.c |   18 ++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletions(-)

-- 
1.7.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux