[RFC v2 31/83] Add new vfs inode allocation.

2018-03-10 Thread Andiry Xu
From: Andiry Xu This routine allocates and initializes a new vfs inode, and setup the attributes of corresponding NOVA inode and inode_info. inode operations are missing now. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 144 +++-

[RFC v2 28/83] Add NOVA address space operations

2018-03-10 Thread Andiry Xu
From: Andiry Xu direct_IO and writepages support. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 24 fs/nova/inode.h | 1 + 2 files changed, 25 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c index 7c10d0e..a30b6aa 100644 --- a/fs/nova/inode.c +++

[RFC v2 29/83] Add write_inode and dirty_inode routines.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/inode.c | 33 + fs/nova/inode.h | 2 ++ fs/nova/super.c | 2 ++ 3 files changed, 37 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c index

[RFC v2 32/83] Add log entry definitions.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends log entries to the inode log upon metadata change. NOVA has four kinds of log entries: File write entry describes a write to a contiguous range of pmem pages, Dentry describes a file/directory being added or removed from a directory, Setattr

[RFC v2 29/83] Add write_inode and dirty_inode routines.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/inode.c | 33 + fs/nova/inode.h | 2 ++ fs/nova/super.c | 2 ++ 3 files changed, 37 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c index a30b6aa..29d172a 100644 --- a/fs/nova/inode.c +++

[RFC v2 32/83] Add log entry definitions.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends log entries to the inode log upon metadata change. NOVA has four kinds of log entries: File write entry describes a write to a contiguous range of pmem pages, Dentry describes a file/directory being added or removed from a directory, Setattr entry is used for

[RFC v2 33/83] Inode log and entry printing for debug purpose.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/nova.h | 3 + fs/nova/stats.c | 234 2 files changed, 237 insertions(+) diff --git a/fs/nova/nova.h b/fs/nova/nova.h index bf4b6ac..03c4991

[RFC v2 33/83] Inode log and entry printing for debug purpose.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/nova.h | 3 + fs/nova/stats.c | 234 2 files changed, 237 insertions(+) diff --git a/fs/nova/nova.h b/fs/nova/nova.h index bf4b6ac..03c4991 100644 --- a/fs/nova/nova.h +++

[RFC v2 36/83] Journal: Lite journal recovery.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/journal.c | 55 +++ 1 file changed, 55 insertions(+) diff --git a/fs/nova/journal.c b/fs/nova/journal.c index 75d590f..f31de97 100644 ---

[RFC v2 34/83] Journal: NOVA light weight journal definitions.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses per-CPU lite journals to provide fast atomicity guarantees for multi-log appending and multi-word inplace updates. NOVA uses undo journaling. Each journal is a circular buffer of 4KB pmem page. Two pointers, journal_head and journal_tail reside in

[RFC v2 36/83] Journal: Lite journal recovery.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/journal.c | 55 +++ 1 file changed, 55 insertions(+) diff --git a/fs/nova/journal.c b/fs/nova/journal.c index 75d590f..f31de97 100644 --- a/fs/nova/journal.c +++ b/fs/nova/journal.c @@

[RFC v2 34/83] Journal: NOVA light weight journal definitions.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses per-CPU lite journals to provide fast atomicity guarantees for multi-log appending and multi-word inplace updates. NOVA uses undo journaling. Each journal is a circular buffer of 4KB pmem page. Two pointers, journal_head and journal_tail reside in the reserved journal

[RFC v2 38/83] Journal: NOVA lite journal initialization.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses per-CPU spinlock to protect the journals. Lite journal initialization consists of two parts: for a new NOVA instance, hard_init allocates the journal pages. soft_init initializes the locks and performs journal recovery. Signed-off-by: Andiry Xu

[RFC v2 30/83] New NOVA inode allocation.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Allocate the new inode in a round-robin way. Extend the inode table if needed. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 40 fs/nova/inode.h | 1 + 2 files changed, 41 insertions(+) diff

[RFC v2 38/83] Journal: NOVA lite journal initialization.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses per-CPU spinlock to protect the journals. Lite journal initialization consists of two parts: for a new NOVA instance, hard_init allocates the journal pages. soft_init initializes the locks and performs journal recovery. Signed-off-by: Andiry Xu --- fs/nova/journal.c

[RFC v2 30/83] New NOVA inode allocation.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Allocate the new inode in a round-robin way. Extend the inode table if needed. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 40 fs/nova/inode.h | 1 + 2 files changed, 41 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c

[RFC v2 39/83] Log operation: dentry append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA performs atomic log appending by first appending the entry to the tail of the log, and then atomically update the log tail pointer. Signed-off-by: Andiry Xu --- fs/nova/log.c | 162

[RFC v2 39/83] Log operation: dentry append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA performs atomic log appending by first appending the entry to the tail of the log, and then atomically update the log tail pointer. Signed-off-by: Andiry Xu --- fs/nova/log.c | 162 ++ fs/nova/log.h | 4 ++ 2 files

[RFC v2 43/83] Log operation: in-place update log entry

2018-03-10 Thread Andiry Xu
From: Andiry Xu To in-place update a log entry, NOVA starts a lite transaction to journal the log entry, then performs update and commits the transaction. Signed-off-by: Andiry Xu --- fs/nova/inode.h | 12 fs/nova/log.c | 183

[RFC v2 43/83] Log operation: in-place update log entry

2018-03-10 Thread Andiry Xu
From: Andiry Xu To in-place update a log entry, NOVA starts a lite transaction to journal the log entry, then performs update and commits the transaction. Signed-off-by: Andiry Xu --- fs/nova/inode.h | 12 fs/nova/log.c | 183

drivers/net/wireless/mediatek/mt76/mac80211.c:119: undefined reference to `devm_of_led_classdev_register'

2018-03-10 Thread kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: cdb06e9d8f520c969676e7d6778cffe5894f079f commit: 7bc04215a66b60e198aecaee8418f6d79fa19faa mt76: add driver code for MT76x2e date: 3 months ago config: x86_64-randconfig-v0-03110120 (attached as .config)

[RFC v2 35/83] Journal: Lite journal helper routines.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/journal.c | 108 ++ 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 fs/nova/journal.c diff --git

drivers/net/wireless/mediatek/mt76/mac80211.c:119: undefined reference to `devm_of_led_classdev_register'

2018-03-10 Thread kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: cdb06e9d8f520c969676e7d6778cffe5894f079f commit: 7bc04215a66b60e198aecaee8418f6d79fa19faa mt76: add driver code for MT76x2e date: 3 months ago config: x86_64-randconfig-v0-03110120 (attached as .config)

[RFC v2 35/83] Journal: Lite journal helper routines.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/journal.c | 108 ++ 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 fs/nova/journal.c diff --git a/fs/nova/Makefile b/fs/nova/Makefile

[RFC v2 37/83] Journal: Lite journal create and commit.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses lite journal to perform light weight transaction. Instead of journaling metadata/data changes directly, NOVA first append updates to each inode's log, and then journal the log tail pointers to make sure all the logs are updated atomically. For inode

[RFC v2 40/83] Log operation: file write entry append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA performs writes by appending file write entries to the log. A file write entry is the metadata of a write operation, and contains pointers to the data blocks. A single write operation may append multiple file write entries to the log, if the allocator

[RFC v2 37/83] Journal: Lite journal create and commit.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses lite journal to perform light weight transaction. Instead of journaling metadata/data changes directly, NOVA first append updates to each inode's log, and then journal the log tail pointers to make sure all the logs are updated atomically. For inode creation and

[RFC v2 40/83] Log operation: file write entry append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA performs writes by appending file write entries to the log. A file write entry is the metadata of a write operation, and contains pointers to the data blocks. A single write operation may append multiple file write entries to the log, if the allocator cannot provide enough

[RFC v2 41/83] Log operation: setattr entry append

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends a setattr entry to the log upon inode modification operations: set size, chmod, etc. Signed-off-by: Andiry Xu --- fs/nova/log.c | 64 +++ 1 file changed, 64

[RFC v2 41/83] Log operation: setattr entry append

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends a setattr entry to the log upon inode modification operations: set size, chmod, etc. Signed-off-by: Andiry Xu --- fs/nova/log.c | 64 +++ 1 file changed, 64 insertions(+) diff --git a/fs/nova/log.c

[RFC v2 44/83] Log operation: invalidate log entries

2018-03-10 Thread Andiry Xu
From: Andiry Xu After new log entries are appended to the log, old log entries can be marked invalid to faciliate garbage collection. Signed-off-by: Andiry Xu --- fs/nova/log.c | 160 +

[RFC v2 44/83] Log operation: invalidate log entries

2018-03-10 Thread Andiry Xu
From: Andiry Xu After new log entries are appended to the log, old log entries can be marked invalid to faciliate garbage collection. Signed-off-by: Andiry Xu --- fs/nova/log.c | 160 + fs/nova/log.h | 4 ++ fs/nova/nova.h | 12

[RFC v2 42/83] Log operation: link change append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends link change entries to atomically update link count and ctime. This occurs in link, unlink and rmdir. Signed-off-by: Andiry Xu --- fs/nova/log.c | 52 fs/nova/log.h | 3

[RFC v2 42/83] Log operation: link change append.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA appends link change entries to atomically update link count and ctime. This occurs in link, unlink and rmdir. Signed-off-by: Andiry Xu --- fs/nova/log.c | 52 fs/nova/log.h | 3 +++ 2 files changed, 55 insertions(+)

[RFC v2 47/83] Dir: Add initial dentries when initializing a directory inode log.

2018-03-10 Thread Andiry Xu
From: Andiry Xu For root directory and newly created directory via mkdir(), we append . and .. dentries to the directory inode log. Signed-off-by: Andiry Xu --- fs/nova/dir.c | 82 +

[RFC v2 47/83] Dir: Add initial dentries when initializing a directory inode log.

2018-03-10 Thread Andiry Xu
From: Andiry Xu For root directory and newly created directory via mkdir(), we append . and .. dentries to the directory inode log. Signed-off-by: Andiry Xu --- fs/nova/dir.c | 82 + fs/nova/nova.h | 2 ++ fs/nova/super.c | 5

[RFC v2 46/83] Dir: Add Directory radix tree insert/remove methods.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses Hash to quickly locate dentry in the directory inode log. The key is the hash of the filename, the value is the dentry. Currently hash collision is ignored, and the radix tree may occupy large memory space with huge directories. Considering

[RFC v2 46/83] Dir: Add Directory radix tree insert/remove methods.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA uses Hash to quickly locate dentry in the directory inode log. The key is the hash of the filename, the value is the dentry. Currently hash collision is ignored, and the radix tree may occupy large memory space with huge directories. Considering replacing it in the future.

[RFC v2 50/83] Inode: Add nova_evict_inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the inode still have links, release the DRAM resource (radix tree, etc). Otherwise reclaim data pages and log pages. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 257 +++-

[RFC v2 50/83] Inode: Add nova_evict_inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the inode still have links, release the DRAM resource (radix tree, etc). Otherwise reclaim data pages and log pages. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 257 +++- fs/nova/inode.h | 5 ++ fs/nova/log.h | 7

[RFC v2 45/83] Log operation: file inode log lookup and assign

2018-03-10 Thread Andiry Xu
From: Andiry Xu After NOVA appends file write entry to commit new writes, it updates the file offset radix tree, finds the old entries (if overwrite) and reclaims the stale data blocks. Signed-off-by: Andiry Xu --- fs/nova/log.c | 108

[RFC v2 45/83] Log operation: file inode log lookup and assign

2018-03-10 Thread Andiry Xu
From: Andiry Xu After NOVA appends file write entry to commit new writes, it updates the file offset radix tree, finds the old entries (if overwrite) and reclaims the stale data blocks. Signed-off-by: Andiry Xu --- fs/nova/log.c | 108 +

Re: [PATCH v5 1/3] Input: gpio-keys - add support for wakeup event action

2018-03-10 Thread Andy Shevchenko
On Sat, Mar 10, 2018 at 8:15 PM, Dmitry Torokhov wrote: > + while (--i >= 0) { Just in case while (i--) { is slightly better to read. > + bdata = >data[i]; > + if (bdata->button->wakeup) > +

Re: [PATCH v5 1/3] Input: gpio-keys - add support for wakeup event action

2018-03-10 Thread Andy Shevchenko
On Sat, Mar 10, 2018 at 8:15 PM, Dmitry Torokhov wrote: > + while (--i >= 0) { Just in case while (i--) { is slightly better to read. > + bdata = >data[i]; > + if (bdata->button->wakeup) > + gpio_keys_button_disable_wakeup(bdata); > +

[RFC v2 49/83] Dir: Append create/remove dentry.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA adds or removes a directory/file by appending a dentry to the parent directory's log. Dentry contains filename and inode number. A positive inode number indicates a create(valid) dentry, and a dentry with inode number zero is a remove dentry. NOVA can

[RFC v2 51/83] Rebuild: directory inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu When vfs issues a read inode command, or when the inode is newly allocated, walk through the inode log to rebuild inode information and the radix tree. Signed-off-by: Andiry Xu --- fs/nova/inode.h | 15 +++ fs/nova/nova.h| 21

[RFC v2 49/83] Dir: Append create/remove dentry.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA adds or removes a directory/file by appending a dentry to the parent directory's log. Dentry contains filename and inode number. A positive inode number indicates a create(valid) dentry, and a dentry with inode number zero is a remove dentry. NOVA can also inplace update a

[RFC v2 51/83] Rebuild: directory inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu When vfs issues a read inode command, or when the inode is newly allocated, walk through the inode log to rebuild inode information and the radix tree. Signed-off-by: Andiry Xu --- fs/nova/inode.h | 15 +++ fs/nova/nova.h| 21 fs/nova/rebuild.c | 329

[RFC v2 52/83] Rebuild: file inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Rebuild file inode metadata and radix tree on read_inode. Signed-off-by: Andiry Xu --- fs/nova/log.h | 4 ++ fs/nova/rebuild.c | 124 ++ 2 files changed, 128 insertions(+) diff

[RFC v2 52/83] Rebuild: file inode.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Rebuild file inode metadata and radix tree on read_inode. Signed-off-by: Andiry Xu --- fs/nova/log.h | 4 ++ fs/nova/rebuild.c | 124 ++ 2 files changed, 128 insertions(+) diff --git a/fs/nova/log.h b/fs/nova/log.h

[RFC v2 55/83] Namei: mkdir

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA mkdir is similar to create. The difference is NOVA will allocate log page for the newly created directory, and append init dentries. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 74

[RFC v2 58/83] Namei: rename

2018-03-10 Thread Andiry Xu
From: Andiry Xu Rename is the most cpmplex namei operation. The target dir may be different from the source dir, and the target inode may exist. Rename involves up to four inodes, and NOVA uses rename transation to atomically update all the affected inodes. Signed-off-by:

[RFC v2 55/83] Namei: mkdir

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA mkdir is similar to create. The difference is NOVA will allocate log page for the newly created directory, and append init dentries. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 74 + 1 file changed, 74

[RFC v2 58/83] Namei: rename

2018-03-10 Thread Andiry Xu
From: Andiry Xu Rename is the most cpmplex namei operation. The target dir may be different from the source dir, and the target inode may exist. Rename involves up to four inodes, and NOVA uses rename transation to atomically update all the affected inodes. Signed-off-by: Andiry Xu ---

[RFC v2 57/83] Namei: rmdir

2018-03-10 Thread Andiry Xu
From: Andiry Xu Similar to unlink. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 105 1 file changed, 105 insertions(+) diff --git a/fs/nova/namei.c b/fs/nova/namei.c index 360d716..4bf6396

[RFC v2 57/83] Namei: rmdir

2018-03-10 Thread Andiry Xu
From: Andiry Xu Similar to unlink. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 105 1 file changed, 105 insertions(+) diff --git a/fs/nova/namei.c b/fs/nova/namei.c index 360d716..4bf6396 100644 --- a/fs/nova/namei.c +++

[RFC v2 56/83] Namei: link and unlink.

2018-03-10 Thread Andiry Xu
From: Andiry Xu For link change operations, NOVA appends a link change entry to the affected inode's log, and uses lite transaction to atomically commit changes to multiple logs. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 159

[RFC v2 56/83] Namei: link and unlink.

2018-03-10 Thread Andiry Xu
From: Andiry Xu For link change operations, NOVA appends a link change entry to the affected inode's log, and uses lite transaction to atomically commit changes to multiple logs. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 159 1

[RFC v2 59/83] Namei: setattr

2018-03-10 Thread Andiry Xu
From: Andiry Xu Add notify_change for setattr operations. Truncate the file blocks if the file is shrunk. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 180 fs/nova/inode.h | 1 +

[RFC v2 60/83] Add special inode operations.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/inode.c | 2 ++ fs/nova/namei.c | 5 + fs/nova/nova.h | 1 + 3 files changed, 8 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c index 2092a55..0e9ab4b 100644 --- a/fs/nova/inode.c

[RFC v2 60/83] Add special inode operations.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/inode.c | 2 ++ fs/nova/namei.c | 5 + fs/nova/nova.h | 1 + 3 files changed, 8 insertions(+) diff --git a/fs/nova/inode.c b/fs/nova/inode.c index 2092a55..0e9ab4b 100644 --- a/fs/nova/inode.c +++ b/fs/nova/inode.c @@ -239,6 +239,7 @@

[RFC v2 59/83] Namei: setattr

2018-03-10 Thread Andiry Xu
From: Andiry Xu Add notify_change for setattr operations. Truncate the file blocks if the file is shrunk. Signed-off-by: Andiry Xu --- fs/nova/inode.c | 180 fs/nova/inode.h | 1 + fs/nova/namei.c | 2 + 3 files changed, 183

[RFC v2 61/83] Super: Add nova_export_ops.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/super.c | 48 1 file changed, 48 insertions(+) diff --git a/fs/nova/super.c b/fs/nova/super.c index daf3270..0847e57 100644 --- a/fs/nova/super.c +++

[RFC v2 54/83] Namei: create and mknod.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA allocates and initializes a new inode, and appends a dentry to the directory's log. Then NOVA creates a transaction to commit both changes atomically: update the directory log tail pointer and validate the new inode. Signed-off-by: Andiry Xu

[RFC v2 62/83] File: getattr and file inode operations

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/file.c | 31 +++ fs/nova/inode.c | 25 + fs/nova/inode.h | 2 ++ fs/nova/nova.h | 3 +++ 5 files changed, 62

[RFC v2 54/83] Namei: create and mknod.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA allocates and initializes a new inode, and appends a dentry to the directory's log. Then NOVA creates a transaction to commit both changes atomically: update the directory log tail pointer and validate the new inode. Signed-off-by: Andiry Xu --- fs/nova/namei.c | 141

[RFC v2 62/83] File: getattr and file inode operations

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/file.c | 31 +++ fs/nova/inode.c | 25 + fs/nova/inode.h | 2 ++ fs/nova/nova.h | 3 +++ 5 files changed, 62 insertions(+), 1 deletion(-) create mode

[RFC v2 61/83] Super: Add nova_export_ops.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Signed-off-by: Andiry Xu --- fs/nova/super.c | 48 1 file changed, 48 insertions(+) diff --git a/fs/nova/super.c b/fs/nova/super.c index daf3270..0847e57 100644 --- a/fs/nova/super.c +++ b/fs/nova/super.c @@ -51,6 +51,7 @@

[RFC v2 53/83] Namei: lookup.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA lookup the inode number by searching the radix tree with the filename hash value and locating the corresponding dentry on the log. Signed-off-by: Andiry Xu --- fs/nova/Makefile | 3 +- fs/nova/inode.c | 2 ++ fs/nova/namei.c |

[RFC v2 63/83] File operation: llseek.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Search the file radix tree to find hold or data. Signed-off-by: Andiry Xu --- fs/nova/file.c | 47 +++ fs/nova/inode.c | 113 fs/nova/inode.h | 1 +

[RFC v2 53/83] Namei: lookup.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA lookup the inode number by searching the radix tree with the filename hash value and locating the corresponding dentry on the log. Signed-off-by: Andiry Xu --- fs/nova/Makefile | 3 +- fs/nova/inode.c | 2 ++ fs/nova/namei.c | 97

[RFC v2 63/83] File operation: llseek.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Search the file radix tree to find hold or data. Signed-off-by: Andiry Xu --- fs/nova/file.c | 47 +++ fs/nova/inode.c | 113 fs/nova/inode.h | 1 + fs/nova/nova.h | 1 + 4 files changed, 162

[RFC v2 66/83] Super: Add file write item cache.

2018-03-10 Thread Andiry Xu
From: Andiry Xu nova_file_write_item combines a file write item with a list head. NOVA uses a linked list of file write items to describe a write operation. Signed-off-by: Andiry Xu --- fs/nova/super.c | 43 ++-

[RFC v2 66/83] Super: Add file write item cache.

2018-03-10 Thread Andiry Xu
From: Andiry Xu nova_file_write_item combines a file write item with a list head. NOVA uses a linked list of file write items to describe a write operation. Signed-off-by: Andiry Xu --- fs/nova/super.c | 43 ++- fs/nova/super.h | 3 +++ 2 files

[RFC v2 64/83] File operation: open, fsync, flush.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA persists file metadata and data before returning to the user space. Hence, fsync is a no-op if the file is not mmaped. Signed-off-by: Andiry Xu --- fs/nova/file.c | 50 ++ 1 file

[RFC v2 64/83] File operation: open, fsync, flush.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA persists file metadata and data before returning to the user space. Hence, fsync is a no-op if the file is not mmaped. Signed-off-by: Andiry Xu --- fs/nova/file.c | 50 ++ 1 file changed, 50 insertions(+) diff --git

[RFC v2 67/83] Dax: commit list of file write items to log.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Given a list of file write items, NOVA commits them by appending each file write entry to the log, and then updates the radix tree to point to these new entries, and updates log tail pointer to commit all the writes atomically. If the items are allocated on

[RFC v2 67/83] Dax: commit list of file write items to log.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Given a list of file write items, NOVA commits them by appending each file write entry to the log, and then updates the radix tree to point to these new entries, and updates log tail pointer to commit all the writes atomically. If the items are allocated on heap, free them on

[RFC v2 65/83] File operation: read.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA is a DAX file system and does not use page cache. For read, NOVA looks up the file write entry by searching the radix tree, and copies data from pmem pages to user buffer directly. Signed-off-by: Andiry Xu --- fs/nova/file.c | 144

[RFC v2 65/83] File operation: read.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA is a DAX file system and does not use page cache. For read, NOVA looks up the file write entry by searching the radix tree, and copies data from pmem pages to user buffer directly. Signed-off-by: Andiry Xu --- fs/nova/file.c | 144

[RFC v2 68/83] File operation: copy-on-write write.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the file is not mmaped, NOVA performs copy-on-write. The CoW is composed of parts: 1. Allocate contiguous data pages. 2. Copy data from user buffer to the data pages. If the write is not aligned to page size, also copy data from existing pmem pages.

Re: [PATCH V1] Input: pm8941-pwrkey: add resin key capabilities

2018-03-10 Thread Dmitry Torokhov
On Wed, Mar 07, 2018 at 12:21:47PM -0800, Dmitry Torokhov wrote: > Hi Tirupathi, > > On Wed, Mar 07, 2018 at 01:39:33PM +0530, Tirupathi Reddy wrote: > > Add resin key support to handle different types of key events > > defined in different platforms. Also, when you say "resin" key, I do not

[RFC v2 68/83] File operation: copy-on-write write.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the file is not mmaped, NOVA performs copy-on-write. The CoW is composed of parts: 1. Allocate contiguous data pages. 2. Copy data from user buffer to the data pages. If the write is not aligned to page size, also copy data from existing pmem pages. 3. Allocate and

Re: [PATCH V1] Input: pm8941-pwrkey: add resin key capabilities

2018-03-10 Thread Dmitry Torokhov
On Wed, Mar 07, 2018 at 12:21:47PM -0800, Dmitry Torokhov wrote: > Hi Tirupathi, > > On Wed, Mar 07, 2018 at 01:39:33PM +0530, Tirupathi Reddy wrote: > > Add resin key support to handle different types of key events > > defined in different platforms. Also, when you say "resin" key, I do not

Re: [PATCH v2] net: ipv6: xfrm6_state: remove VLA usage

2018-03-10 Thread Stefano Brivio
On Sat, 10 Mar 2018 09:18:46 -0800 Kees Cook wrote: > On Sat, Mar 10, 2018 at 12:43 AM, Stefano Brivio wrote: > > On Sat, 10 Mar 2018 09:40:44 +0200 > > Andreas Christoforou wrote: > > > >> diff --git

Re: [PATCH v2] net: ipv6: xfrm6_state: remove VLA usage

2018-03-10 Thread Stefano Brivio
On Sat, 10 Mar 2018 09:18:46 -0800 Kees Cook wrote: > On Sat, Mar 10, 2018 at 12:43 AM, Stefano Brivio wrote: > > On Sat, 10 Mar 2018 09:40:44 +0200 > > Andreas Christoforou wrote: > > > >> diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c > >> index b15075a..270a53a 100644 > >>

[PATCH 2/2] net/usb/ax88179_178a: Delete three unnecessary variables in ax88179_chk_eee()

2018-03-10 Thread SF Markus Elfring
From: Markus Elfring Date: Sat, 10 Mar 2018 18:53:28 +0100 Use three values directly for a condition check without assigning them to intermediate variables. Signed-off-by: Markus Elfring --- drivers/net/usb/ax88179_178a.c | 13

[PATCH 2/2] net/usb/ax88179_178a: Delete three unnecessary variables in ax88179_chk_eee()

2018-03-10 Thread SF Markus Elfring
From: Markus Elfring Date: Sat, 10 Mar 2018 18:53:28 +0100 Use three values directly for a condition check without assigning them to intermediate variables. Signed-off-by: Markus Elfring --- drivers/net/usb/ax88179_178a.c | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-)

[RFC v2 70/83] File operation: Inplace write.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the user specifies inplace updates, or the file is mmaped, NOVA performs inplace writes. The trick is dax page fault can occur concurrently with inplace writes, and allocate new blocks. Also, inplace write memcpy may trigger page fault (xfstests 248).

[RFC v2 70/83] File operation: Inplace write.

2018-03-10 Thread Andiry Xu
From: Andiry Xu If the user specifies inplace updates, or the file is mmaped, NOVA performs inplace writes. The trick is dax page fault can occur concurrently with inplace writes, and allocate new blocks. Also, inplace write memcpy may trigger page fault (xfstests 248). Since page fault may

Re: [PATCH] arm64: KVM: Use SMCCC_ARCH_WORKAROUND_1 for Falkor BP hardening

2018-03-10 Thread Shanker Donthineni
Hi Will, On 03/06/2018 09:25 AM, Will Deacon wrote: > On Mon, Mar 05, 2018 at 12:03:33PM -0600, Shanker Donthineni wrote: >> On 03/05/2018 11:15 AM, Will Deacon wrote: >>> On Mon, Mar 05, 2018 at 10:57:58AM -0600, Shanker Donthineni wrote: On 03/05/2018 09:56 AM, Will Deacon wrote: > On

[RFC v2 69/83] Super: Add module param inplace_data_updates.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Provide inplace data updates option if people prefer inplace updates to copy-on-write. Signed-off-by: Andiry Xu --- fs/nova/nova.h | 1 + fs/nova/super.c | 7 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git

Re: [PATCH] arm64: KVM: Use SMCCC_ARCH_WORKAROUND_1 for Falkor BP hardening

2018-03-10 Thread Shanker Donthineni
Hi Will, On 03/06/2018 09:25 AM, Will Deacon wrote: > On Mon, Mar 05, 2018 at 12:03:33PM -0600, Shanker Donthineni wrote: >> On 03/05/2018 11:15 AM, Will Deacon wrote: >>> On Mon, Mar 05, 2018 at 10:57:58AM -0600, Shanker Donthineni wrote: On 03/05/2018 09:56 AM, Will Deacon wrote: > On

[RFC v2 69/83] Super: Add module param inplace_data_updates.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Provide inplace data updates option if people prefer inplace updates to copy-on-write. Signed-off-by: Andiry Xu --- fs/nova/nova.h | 1 + fs/nova/super.c | 7 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/nova/nova.h b/fs/nova/nova.h index

[RFC v2 73/83] Dax: Add iomap operations.

2018-03-10 Thread Andiry Xu
From: Andiry Xu The key of iomap is dax_get_blocks(). It first takes the read lock and lookup the block; if the block is missing, it takes write lock, check again and allocate the new block if needed. Signed-off-by: Andiry Xu --- fs/nova/dax.c | 184

[RFC v2 71/83] Symlink support.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA alloates two blocks for symlink inode: One for inode log, and the other one is a data block, storing symname. Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/inode.c | 2 + fs/nova/namei.c | 70

[RFC v2 71/83] Symlink support.

2018-03-10 Thread Andiry Xu
From: Andiry Xu NOVA alloates two blocks for symlink inode: One for inode log, and the other one is a data block, storing symname. Signed-off-by: Andiry Xu --- fs/nova/Makefile | 2 +- fs/nova/inode.c | 2 + fs/nova/namei.c | 70 fs/nova/nova.h| 5

[RFC v2 73/83] Dax: Add iomap operations.

2018-03-10 Thread Andiry Xu
From: Andiry Xu The key of iomap is dax_get_blocks(). It first takes the read lock and lookup the block; if the block is missing, it takes write lock, check again and allocate the new block if needed. Signed-off-by: Andiry Xu --- fs/nova/dax.c | 184

[RFC v2 72/83] File operation: fallocate.

2018-03-10 Thread Andiry Xu
From: Andiry Xu Fallocate works similar as writes, allocating zeroed blocked for the holes in the request region. Signed-off-by: Andiry Xu --- fs/nova/file.c | 148 + fs/nova/nova.h | 5 ++ 2

[RFC v2 75/83] File operation: read/write iter.

2018-03-10 Thread Andiry Xu
From: Andiry Xu They use the iomap framework to do read/write. Due to software overheads they are slower than dax read/write. Signed-off-by: Andiry Xu --- fs/nova/file.c | 65 ++ 1 file changed, 65

<    1   2   3   4   5   6   7   >