Re: [PATCH 1/2] fuse: optimize struct fuse_conn fields

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

 




On 4/23/25 12:25 AM, Joanne Koong wrote:
> On Mon, Apr 21, 2025 at 7:07 PM Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote:
>>
>>
>>
>> On 4/19/25 5:06 AM, Joanne Koong wrote:
>>> Use a bitfield for tracking initialized, blocked, aborted, and io_uring
>>> state of the fuse connection. Track connected state using a bool instead
>>> of an unsigned.
>>>
>>> On a 64-bit system, this shaves off 16 bytes from the size of struct
>>> fuse_conn.
>>>
>>> No functional changes.
>>>
>>> Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx>
>>> ---
>>>  fs/fuse/fuse_i.h | 24 ++++++++++++------------
>>>  1 file changed, 12 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
>>> index b54f4f57789f..6aecada8aadd 100644
>>> --- a/fs/fuse/fuse_i.h
>>> +++ b/fs/fuse/fuse_i.h
>>> @@ -690,24 +690,24 @@ struct fuse_conn {
>>>        * active_background, bg_queue, blocked */
>>>       spinlock_t bg_lock;
>>>
>>> -     /** Flag indicating that INIT reply has been received. Allocating
>>> -      * any fuse request will be suspended until the flag is set */
>>> -     int initialized;
>>> -
>>> -     /** Flag indicating if connection is blocked.  This will be
>>> -         the case before the INIT reply is received, and if there
>>> -         are too many outstading backgrounds requests */
>>> -     int blocked;
>>> -
>>>       /** waitq for blocked connection */
>>>       wait_queue_head_t blocked_waitq;
>>>
>>>       /** Connection established, cleared on umount, connection
>>>           abort and device release */
>>> -     unsigned connected;
>>> +     bool connected;
>>
>> Why not also convert connected to bitfield?
> 
> fuse_drop_waiting() checks the connected state locklessly through
> READ_ONCE(fc->connected). The smallest size READ_ONCE supports is a
> byte, I don't think it works on bitfields.

Okay, that makes sense.  Thanks.

-- 
Thanks,
Jingbo




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux