[PATCH] staging: gasket: apex: Make structure apex_desc constant

2019-08-14 Thread Nishka Dasgupta
Static structure apex_desc, of type gasket_driver_desc, is used only as an argument to the functions gasket_register_device() and gasket_unregister_device(). In the definitions of both these functions, their parameter is declared as const. Hence make apex_desc itself constant to protect it from

[PATCH v8 24/24] erofs: add document

2019-08-14 Thread Gao Xiang
This documents key features, usage, and on-disk design of erofs. Signed-off-by: Gao Xiang --- Documentation/filesystems/erofs.txt | 225 1 file changed, 225 insertions(+) create mode 100644 Documentation/filesystems/erofs.txt diff --git

[PATCH v8 22/24] erofs: introduce the decompression frontend

2019-08-14 Thread Gao Xiang
This patch introduces the basic inplace fixed-sized output decompression implementation for erofs filesystem. In constant to fixed-sized input compression, it has fixed-sized capacity for each compressed cluster to contain compressed data with the following advantages: 1) improved storage

[PATCH v8 19/24] erofs: add erofs_allocpage()

2019-08-14 Thread Gao Xiang
This patch introduces an temporary _on-stack_ page pool to reuse the freed page directly as much as it can for better performance and release all pages at a time, it also slightly reduces the possibility of the potential memory allocation failure. Signed-off-by: Gao Xiang ---

[PATCH v8 18/24] erofs: introduce pagevec for decompression subsystem

2019-08-14 Thread Gao Xiang
For each physical cluster, there is a straight-forward way of allocating a fixed or variable-sized array to record the corresponding file pages for its decompression if we decide to decompress these pages asynchronously (eg. read-ahead case), however it will take variable-sized on-heap memory

[PATCH v8 21/24] erofs: introduce LZ4 decompression inplace

2019-08-14 Thread Gao Xiang
compressed data will be usually loaded into last pages of the extent (the last page for 4k) for in-place decompression (more specifically, in-place IO), as ilustration below, start of compressed logical extent | end of this logical extent |

[PATCH v8 15/24] erofs: introduce erofs shrinker

2019-08-14 Thread Gao Xiang
This patch adds a dedicated shrinker targeting to free unneeded memory consumed by a number of erofs in-memory data structures. Like F2FS and UBIFS, it also adds: - sbi->umount_mutex to avoid races on shrinker and put_super; - sbi->shrinker_run_no to not revisit recently scanned objects.

[PATCH v8 23/24] erofs: introduce cached decompression

2019-08-14 Thread Gao Xiang
This patch adds strategies which can be selected by users in order to cache both incomplete ends of compressed physical clusters as a complement of in-place I/O in order to boost random read, but it costs more memory than the in-place I/O only. Signed-off-by: Gao Xiang --- fs/erofs/internal.h |

[PATCH v8 20/24] erofs: introduce generic decompression backend

2019-08-14 Thread Gao Xiang
This patch adds decompression backend to EROFS, which supports uncompressed and LZ4 compressed data. For compressed data, it uses the following strategy: 1) If outputsize is very small (totally less than a threshold), decompress to the per-CPU buffer and do memcpy directly in order to avoid

[PATCH v8 12/24] erofs: introduce tagged pointer

2019-08-14 Thread Gao Xiang
Currently kernel has scattered tagged pointer usages hacked by hand in plain code, without a unique and portable functionset to highlight the tagged pointer itself and wrap these hacked code in order to clean up all over meaningless magic masks. This patch introduces simple generic methods to

[PATCH v8 03/24] erofs: add super block operations

2019-08-14 Thread Gao Xiang
This commit adds erofs super block operations, including (u)mount, remount_fs, show_options, statfs, in addition to some private icache management functions. Signed-off-by: Gao Xiang --- fs/erofs/super.c | 437 +++ 1 file changed, 437 insertions(+)

[PATCH v8 00/24] erofs: promote erofs from staging v8

2019-08-14 Thread Gao Xiang
[I strip the previous cover letter, the old one can be found in v6: https://lore.kernel.org/r/20190802125347.166018-1-gaoxian...@huawei.com/] We'd like to submit a formal moving patch applied to staging tree for 5.4, before that we'd like to hear if there are some ACKs, suggestions or NAKs,

[PATCH v8 09/24] erofs: support tracepoint

2019-08-14 Thread Gao Xiang
Add basic tracepoints for ->readpage{,s}, ->lookup, ->destroy_inode, fill_inode and map_blocks. Signed-off-by: Gao Xiang --- include/trace/events/erofs.h | 241 +++ 1 file changed, 241 insertions(+) create mode 100644 include/trace/events/erofs.h diff --git

[PATCH v8 16/24] erofs: introduce workstation for decompression

2019-08-14 Thread Gao Xiang
This patch introduces another concept used by decompress subsystem called 'workstation'. It can be seen as a sparse array that stores pointers pointed to data structures related to the corresponding physical clusters. All lookups are protected by RCU read lock. Besides, reference count and

[PATCH v8 10/24] erofs: update Kconfig and Makefile

2019-08-14 Thread Gao Xiang
This commit adds Makefile and Kconfig for erofs, and updates Makefile and Kconfig files in the fs directory. Signed-off-by: Gao Xiang --- fs/Kconfig| 1 + fs/Makefile | 1 + fs/erofs/Kconfig | 36 fs/erofs/Makefile | 9 + 4 files

[PATCH v8 17/24] erofs: introduce per-CPU buffers implementation

2019-08-14 Thread Gao Xiang
This patch introduces per-CPU buffers in order for the upcoming generic decompression framework to use. Note that I tried to use in-kernel per-CPU buffer or per-CPU page approaches to clean up further, however noticeable performanace regression (about 2% for sequential read) was observed. Let's

[PATCH v8 06/24] erofs: support special inode

2019-08-14 Thread Gao Xiang
This patch adds to support special inode, such as block dev, char, socket, pipe inode. Signed-off-by: Gao Xiang --- fs/erofs/inode.c | 32 ++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index

[PATCH v8 02/24] erofs: add erofs in-memory stuffs

2019-08-14 Thread Gao Xiang
- erofs_sb_info: contains erofs-specific in-memory information. - erofs_vnode: contains vfs_inode and other fs-specific information. same as super block, the only one in-memory definition exists. - erofs_map_blocks Logical to physical block mapping, used by erofs_map_blocks().

[PATCH v8 01/24] erofs: add on-disk layout

2019-08-14 Thread Gao Xiang
This commit adds the on-disk layout header file of erofs. On-disk format is compatible with erofs-staging added in 4.19. In addition, add EROFS_SUPER_MAGIC_V1 to magic.h. Signed-off-by: Gao Xiang --- fs/erofs/erofs_fs.h| 316 +

[PATCH v8 14/24] erofs: introduce superblock registration

2019-08-14 Thread Gao Xiang
In order to introducing shrinker solution for erofs, let's manage all mounted erofs instances at first. Signed-off-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/internal.h | 13 + fs/erofs/super.c| 9 + fs/erofs/utils.c| 32

[PATCH v8 13/24] erofs: add compression indexes support

2019-08-14 Thread Gao Xiang
This patch adds EROFS compression indexes support, including legacy and compacted 2/4B indexes. In addition, it introduces an iterable L2P mapping operation called 'z_erofs_map_blocks_iter'. Compared with 'erofs_map_blocks', it avoids a number of redundant 'release and regrab' processes if they

[PATCH v8 05/24] erofs: add inode operations

2019-08-14 Thread Gao Xiang
This adds core functions to get, read an inode. It adds statx support as well. Signed-off-by: Gao Xiang --- fs/erofs/inode.c | 293 +++ 1 file changed, 293 insertions(+) create mode 100644 fs/erofs/inode.c diff --git a/fs/erofs/inode.c

[PATCH v8 07/24] erofs: add directory operations

2019-08-14 Thread Gao Xiang
This adds functions for directory, mainly readdir. Signed-off-by: Gao Xiang --- fs/erofs/dir.c | 148 + 1 file changed, 148 insertions(+) create mode 100644 fs/erofs/dir.c diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c new file mode 100644 index

[PATCH v8 08/24] erofs: add namei functions

2019-08-14 Thread Gao Xiang
This commit adds functions that transfer names to inodes. Signed-off-by: Gao Xiang --- fs/erofs/namei.c | 249 +++ 1 file changed, 249 insertions(+) create mode 100644 fs/erofs/namei.c diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c new file mode

[PATCH v8 11/24] erofs: introduce xattr & posixacl support

2019-08-14 Thread Gao Xiang
This implements xattr and posixacl functionalities. 1) Inline and shared xattrs are introduced for flexibility. Specifically, if the same xattr is used for a large number of inodes or the size of a xattr is so large that unsuitable to inline, a shared xattr will be used instead in xattr

[PATCH v8 04/24] erofs: add raw address_space operations

2019-08-14 Thread Gao Xiang
This commit adds functions for meta and raw data, and also provides address_space_operations for raw data access. Signed-off-by: Gao Xiang --- fs/erofs/data.c | 419 1 file changed, 419 insertions(+) create mode 100644 fs/erofs/data.c diff

Re: [PATCH v2 3/3] staging: erofs: correct all misused ENOTSUPP

2019-08-14 Thread Chao Yu
On 2019/8/14 18:37, Gao Xiang wrote: > As Chao pointed out [1], ENOTSUPP is used for NFS > protocol only, we should use EOPNOTSUPP instead... > > [1] > https://lore.kernel.org/lkml/108ee2f9-75dd-b8ab-8da7-b81c17baf...@huawei.com/ > > Reported-by: Chao Yu > Signed-off-by: Gao Xiang

Re: [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base

2019-08-14 Thread Russell King - ARM Linux admin
On Wed, Aug 14, 2019 at 04:00:30PM -0700, Steve Longerbeam wrote: > > > On 8/14/19 3:04 PM, Russell King - ARM Linux admin wrote: > > On Wed, Aug 14, 2019 at 12:04:41PM -0700, Steve Longerbeam wrote: > > > > > > On 8/14/19 3:30 AM, Russell King - ARM Linux admin wrote: > > > > On Tue, Aug 06,

Re: [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base

2019-08-14 Thread Steve Longerbeam
On 8/14/19 3:04 PM, Russell King - ARM Linux admin wrote: On Wed, Aug 14, 2019 at 12:04:41PM -0700, Steve Longerbeam wrote: On 8/14/19 3:30 AM, Russell King - ARM Linux admin wrote: On Tue, Aug 06, 2019 at 09:53:41AM -0700, Steve Longerbeam wrote: The full patchset doesn't seem to be up

Re: [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base

2019-08-14 Thread Russell King - ARM Linux admin
On Wed, Aug 14, 2019 at 12:04:41PM -0700, Steve Longerbeam wrote: > > > On 8/14/19 3:30 AM, Russell King - ARM Linux admin wrote: > > On Tue, Aug 06, 2019 at 09:53:41AM -0700, Steve Longerbeam wrote: > > > The full patchset doesn't seem to be up yet, but see [1] for the cover > > > letter. > >

Re: [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base

2019-08-14 Thread Steve Longerbeam
On 8/14/19 3:30 AM, Russell King - ARM Linux admin wrote: On Tue, Aug 06, 2019 at 09:53:41AM -0700, Steve Longerbeam wrote: The full patchset doesn't seem to be up yet, but see [1] for the cover letter. Was the entire series copied to the mailing lists, or just selected patches? I only saw

[PATCH v2 2/3] staging: erofs: differentiate unsupported on-disk format

2019-08-14 Thread Gao Xiang
For some specific fields, use EOPNOTSUPP instead of EIO for values which look sane but aren't supported right now. Reviewed-by: Chao Yu Signed-off-by: Gao Xiang --- change log from v1: - use EOPNOTSUPP rather than ENOTSUPP pointed by Chao; drivers/staging/erofs/inode.c | 4 ++--

[PATCH v2 1/3] staging: erofs: introduce EFSCORRUPTED and more logs

2019-08-14 Thread Gao Xiang
Previously, EROFS uses EIO to indicate that filesystem is corrupted as well. However, as Pavel said [1], other filesystems tend to use EUCLEAN(EFSCORRUPTED) instead, let's follow what others do right now. Also, add some more prints to the syslog. [1]

[PATCH v2 3/3] staging: erofs: correct all misused ENOTSUPP

2019-08-14 Thread Gao Xiang
As Chao pointed out [1], ENOTSUPP is used for NFS protocol only, we should use EOPNOTSUPP instead... [1] https://lore.kernel.org/lkml/108ee2f9-75dd-b8ab-8da7-b81c17baf...@huawei.com/ Reported-by: Chao Yu Signed-off-by: Gao Xiang --- drivers/staging/erofs/decompressor.c | 2 +-

Re: [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base

2019-08-14 Thread Russell King - ARM Linux admin
On Tue, Aug 06, 2019 at 09:53:41AM -0700, Steve Longerbeam wrote: > The full patchset doesn't seem to be up yet, but see [1] for the cover > letter. Was the entire series copied to the mailing lists, or just selected patches? I only saw 4, 9, 11 and 13-22 via lakml. In the absence of the other

Re: [PATCH v3 1/3] ARM: dts: imx6ul: Add csi node

2019-08-14 Thread Sakari Ailus
Hi Sébastien, On Wed, Jul 31, 2019 at 06:32:57PM +0200, Sébastien Szymanski wrote: > Add csi node for i.MX6UL SoC. > > Reviewed-by: Fabio Estevam > Signed-off-by: Sébastien Szymanski This should be probably merged through the ARM tree. I can take the other two. > --- > > Changes for v3: >

Re: [PATCH RESEND 2/2] staging: erofs: differentiate unsupported on-disk format

2019-08-14 Thread Gao Xiang
Hi Chao, On Wed, Aug 14, 2019 at 05:25:51PM +0800, Chao Yu wrote: > On 2019/8/14 12:32, Gao Xiang wrote: > > For some specific fields, use ENOTSUPP instead of EIO > > for values which look sane but aren't supported right now. > > > > Signed-off-by: Gao Xiang > > Reviewed-by: Chao Yu > > > +

Re: [PATCH RESEND 2/2] staging: erofs: differentiate unsupported on-disk format

2019-08-14 Thread Chao Yu
On 2019/8/14 12:32, Gao Xiang wrote: > For some specific fields, use ENOTSUPP instead of EIO > for values which look sane but aren't supported right now. > > Signed-off-by: Gao Xiang Reviewed-by: Chao Yu > + return -ENOTSUPP; A little bit confused about when we need to use

[BUG] removing and reinserting imx-media causes kernel to explode

2019-08-14 Thread Russell King - ARM Linux admin
I just did this: rmmod imx-media modprobe imx-media and was greeted by the below kernel messages. I don't think this has been the first issue I found with the iMX media stuff involving a module unload/reload cycle - may I suggest that this is added to the testing regime for this code? Thanks.

Re: [PATCH RESEND 1/2] staging: erofs: introduce EFSCORRUPTED and more logs

2019-08-14 Thread Chao Yu
On 2019/8/14 12:32, Gao Xiang wrote: > Previously, EROFS uses EIO to indicate that filesystem is > corrupted as well, but other filesystems tend to use > EUCLEAN instead, let's follow what others do right now. > > Also, add some more prints to the syslog. > > Suggested-by: Pavel Machek >

Re: [PATCH] staging: erofs: removing an extra call to iloc() in fill_inode()

2019-08-14 Thread Gao Xiang
On Wed, Aug 14, 2019 at 09:22:53AM +0530, Pratik Shinde wrote: > Yes.since we already have a function with same name (and we are using it in > same context). > 'inode_loc' was the most meaningful name I could come up with :) > > --Pratik. And one more small suggestion... see the following,

Re: [PATCH v2] staging: iio: accel: adis16240: Improve readability on write_raw function

2019-08-14 Thread Ardelean, Alexandru
On Tue, 2019-08-13 at 16:31 -0300, Rodrigo Ribeiro wrote: > [External] > > Replace shift and minus operation by GENMASK macro and remove the local > variables used to store intermediate data. > Reviewed-by: Alexandru Ardelean > Signed-off-by: Rodrigo Ribeiro Carvalho > --- > v2: >- Leave

Re: [PATCH] staging: erofs: removing an extra call to iloc() in fill_inode()

2019-08-14 Thread Chao Yu
On 2019/8/14 11:52, Pratik Shinde wrote: > Yes.since we already have a function with same name (and we are using it in > same > context). > 'inode_loc' was the most meaningful name I could come up with :) [snip] On Wed, Aug 14, 2019 at 7:37 AM Gao Xiang wrote: > iloc is the name of static