Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753124AbbGBJKA (ORCPT ); Thu, 2 Jul 2015 05:10:00 -0400 Received: from mail-wg0-f51.google.com ([74.125.82.51]:34817 "EHLO mail-wg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752584AbbGBJJs (ORCPT ); Thu, 2 Jul 2015 05:09:48 -0400 Date: Thu, 2 Jul 2015 11:09:54 +0200 From: Miklos Szeredi To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Ashish Samant , Srinivas Eeda Subject: [GIT PULL] fuse update for 4.2 Message-ID: <20150702090954.GA28939@tucsk.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3424 Lines: 86 Hi Linus, Please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-linus This is the start of improving fuse scalability. An input queue and a processing queue is split out from the monolithic fuse connection, each of those having their own spinlock. The end of the patchset adds the ability to clone a fuse connection. This means, that instead of having to read/write requests/answers on a single fuse device fd, the fuse daemon can have multiple distinct file descriptors open. Each of those can be used to receive requests and send answers, currently the only constraint is that a request must be answered on the same fd as it was read from. This can be extended further to allow binding a device clone to a specific CPU or NUMA node. Based on a patchset by Srinivas Eeda and Ashish Samant. Thanks to Ashish for the review of this series. (While the commits seem young, this has been in for-next for a month at least, only the Reviewed-by tags were added recently). Thanks, Miklos --- Miklos Szeredi (40): fuse: initialize fc->release before calling it fuse: fix background request if not connected fuse: reset waiting fuse: account as waiting before queuing for background fuse: check conn_error earlier fuse: fold fuse_request_send_nowait() into single caller fuse: call fuse_abort_conn() in dev release fuse: simplify request abort fuse: req use bitops fuse: use per req lock for lock/unlock_request() fuse: fold helpers into abort fuse: rework abort fuse: simplify unique ctr fuse: don't hold lock over request_wait_answer() fuse: simplify req states fuse: req state use flags fuse: separate out input queue fuse: duplicate ->connected in iqueue fuse: abort: group iqueue accesses fuse: dev read: split list_move fuse: iqueue locking fuse: allow interrupt queuing without fc->lock fuse: no fc->lock for iqueue parts fuse: simplify request_wait() fuse: separate out processing queue fuse: duplicate ->connected in pqueue fuse: move list_del_init() from request_end() into callers fuse: cleanup fuse_dev_do_read() fuse: abort: group pqueue accesses fuse: pqueue locking fuse: add req flag for private list fuse: request_end(): do once fuse: cleanup request_end() fuse: no fc->lock in request_end() fuse: no fc->lock for pqueue parts fuse: abort: no fc->lock needed for request ending fuse: device fd clone fuse: introduce per-instance fuse_dev structure fuse: separate pqueue for clones fuse: update MAINTAINERS entry --- Documentation/ioctl/ioctl-number.txt | 1 + MAINTAINERS | 2 + fs/fuse/cuse.c | 15 +- fs/fuse/dev.c | 825 ++++++++++++++++++----------------- fs/fuse/file.c | 20 +- fs/fuse/fuse_i.h | 167 ++++--- fs/fuse/inode.c | 86 +++- include/uapi/linux/fuse.h | 3 + 8 files changed, 630 insertions(+), 489 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/