From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Daniel Rosenberg <drosen@google.com>
Cc: Eric Biggers <ebiggers@kernel.org>,
"Theodore Ts'o" <tytso@mit.edu>,
linux-ext4@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org>,
Chao Yu <chao@kernel.org>,
linux-f2fs-devel@lists.sourceforge.net,
linux-fscrypt@vger.kernel.org,
Alexander Viro <viro@zeniv.linux.org.uk>,
Richard Weinberger <richard@nod.at>,
linux-mtd@lists.infradead.org,
Andreas Dilger <adilger.kernel@dilger.ca>,
Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, kernel-team@android.com
Subject: Re: [PATCH v7 1/8] unicode: Add utf8_casefold_iter
Date: Mon, 17 Feb 2020 14:02:10 -0500 [thread overview]
Message-ID: <8536b95971.fsf@collabora.com> (raw)
In-Reply-To: <CA+PiJmT_8EzyFO283_E62+UC6vtCGOJXKHAFqnH3QM9LA+PHAw@mail.gmail.com> (Daniel Rosenberg's message of "Fri, 14 Feb 2020 13:47:37 -0800")
Daniel Rosenberg <drosen@google.com> writes:
> On Tue, Feb 11, 2020 at 7:38 PM Eric Biggers <ebiggers@kernel.org> wrote:
>>
>> Indirect function calls are expensive these days for various reasons, including
>> Spectre mitigations and CFI. Are you sure it's okay from a performance
>> perspective to make an indirect call for every byte of the pathname?
>>
>> > +typedef int (*utf8_itr_actor_t)(struct utf8_itr_context *, int byte, int pos);
>>
>> The byte argument probably should be 'u8', to avoid confusion about whether it's
>> a byte or a Unicode codepoint.
>>
just for the record, we use int utf8byte because it can fail
error codes, but that is not the case here. It should be u8.
>
> Gabriel, what do you think here? I could change it to either exposing
> the things necessary to do the hashing in libfs, or instead of the
> general purpose iterator, just have a hash function inside of unicode
> that will compute the hash given a seed value.
Sorry for the delay, I'm away on a long vacation and intentionally
staying away from my laptop :)
Eric has a very good point, if not prohibitively, it is unnecessarily
expensive for a hot path. Why not expose utf8ncursor and utf8byte to
libfs and implement the hash in libfs?
--
Gabriel Krisman Bertazi
WARNING: multiple messages have this Message-ID (diff)
From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Daniel Rosenberg <drosen@google.com>
Cc: Theodore Ts'o <tytso@mit.edu>, Jonathan Corbet <corbet@lwn.net>,
Richard Weinberger <richard@nod.at>,
Andreas Dilger <adilger.kernel@dilger.ca>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
Eric Biggers <ebiggers@kernel.org>,
linux-fscrypt@vger.kernel.org, linux-mtd@lists.infradead.org,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org>,
linux-ext4@vger.kernel.org, kernel-team@android.com
Subject: Re: [f2fs-dev] [PATCH v7 1/8] unicode: Add utf8_casefold_iter
Date: Mon, 17 Feb 2020 14:02:10 -0500 [thread overview]
Message-ID: <8536b95971.fsf@collabora.com> (raw)
In-Reply-To: <CA+PiJmT_8EzyFO283_E62+UC6vtCGOJXKHAFqnH3QM9LA+PHAw@mail.gmail.com> (Daniel Rosenberg's message of "Fri, 14 Feb 2020 13:47:37 -0800")
Daniel Rosenberg <drosen@google.com> writes:
> On Tue, Feb 11, 2020 at 7:38 PM Eric Biggers <ebiggers@kernel.org> wrote:
>>
>> Indirect function calls are expensive these days for various reasons, including
>> Spectre mitigations and CFI. Are you sure it's okay from a performance
>> perspective to make an indirect call for every byte of the pathname?
>>
>> > +typedef int (*utf8_itr_actor_t)(struct utf8_itr_context *, int byte, int pos);
>>
>> The byte argument probably should be 'u8', to avoid confusion about whether it's
>> a byte or a Unicode codepoint.
>>
just for the record, we use int utf8byte because it can fail
error codes, but that is not the case here. It should be u8.
>
> Gabriel, what do you think here? I could change it to either exposing
> the things necessary to do the hashing in libfs, or instead of the
> general purpose iterator, just have a hash function inside of unicode
> that will compute the hash given a seed value.
Sorry for the delay, I'm away on a long vacation and intentionally
staying away from my laptop :)
Eric has a very good point, if not prohibitively, it is unnecessarily
expensive for a hot path. Why not expose utf8ncursor and utf8byte to
libfs and implement the hash in libfs?
--
Gabriel Krisman Bertazi
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
WARNING: multiple messages have this Message-ID (diff)
From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Daniel Rosenberg <drosen@google.com>
Cc: Theodore Ts'o <tytso@mit.edu>, Jonathan Corbet <corbet@lwn.net>,
Richard Weinberger <richard@nod.at>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Chao Yu <chao@kernel.org>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
Eric Biggers <ebiggers@kernel.org>,
linux-fscrypt@vger.kernel.org, linux-mtd@lists.infradead.org,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org, Jaegeuk Kim <jaegeuk@kernel.org>,
linux-ext4@vger.kernel.org, kernel-team@android.com
Subject: Re: [PATCH v7 1/8] unicode: Add utf8_casefold_iter
Date: Mon, 17 Feb 2020 14:02:10 -0500 [thread overview]
Message-ID: <8536b95971.fsf@collabora.com> (raw)
In-Reply-To: <CA+PiJmT_8EzyFO283_E62+UC6vtCGOJXKHAFqnH3QM9LA+PHAw@mail.gmail.com> (Daniel Rosenberg's message of "Fri, 14 Feb 2020 13:47:37 -0800")
Daniel Rosenberg <drosen@google.com> writes:
> On Tue, Feb 11, 2020 at 7:38 PM Eric Biggers <ebiggers@kernel.org> wrote:
>>
>> Indirect function calls are expensive these days for various reasons, including
>> Spectre mitigations and CFI. Are you sure it's okay from a performance
>> perspective to make an indirect call for every byte of the pathname?
>>
>> > +typedef int (*utf8_itr_actor_t)(struct utf8_itr_context *, int byte, int pos);
>>
>> The byte argument probably should be 'u8', to avoid confusion about whether it's
>> a byte or a Unicode codepoint.
>>
just for the record, we use int utf8byte because it can fail
error codes, but that is not the case here. It should be u8.
>
> Gabriel, what do you think here? I could change it to either exposing
> the things necessary to do the hashing in libfs, or instead of the
> general purpose iterator, just have a hash function inside of unicode
> that will compute the hash given a seed value.
Sorry for the delay, I'm away on a long vacation and intentionally
staying away from my laptop :)
Eric has a very good point, if not prohibitively, it is unnecessarily
expensive for a hot path. Why not expose utf8ncursor and utf8byte to
libfs and implement the hash in libfs?
--
Gabriel Krisman Bertazi
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2020-02-17 19:02 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-08 1:35 [PATCH v7 0/8] Support fof Casefolding and Encryption Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-08 1:35 ` [PATCH v7 1/8] unicode: Add utf8_casefold_iter Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 3:38 ` Eric Biggers
2020-02-12 3:38 ` Eric Biggers
2020-02-12 3:38 ` [f2fs-dev] " Eric Biggers
2020-02-14 21:47 ` Daniel Rosenberg
2020-02-14 21:47 ` Daniel Rosenberg
2020-02-14 21:47 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-17 19:02 ` Gabriel Krisman Bertazi [this message]
2020-02-17 19:02 ` Gabriel Krisman Bertazi
2020-02-17 19:02 ` [f2fs-dev] " Gabriel Krisman Bertazi
2020-02-08 1:35 ` [PATCH v7 2/8] fs: Add standard casefolding support Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-08 2:12 ` Al Viro
2020-02-08 2:12 ` Al Viro
2020-02-08 2:12 ` [f2fs-dev] " Al Viro
2020-02-10 23:11 ` Daniel Rosenberg
2020-02-10 23:11 ` Daniel Rosenberg
2020-02-10 23:11 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-10 23:42 ` Al Viro
2020-02-10 23:42 ` Al Viro
2020-02-10 23:42 ` [f2fs-dev] " Al Viro
2020-02-12 6:34 ` Eric Biggers
2020-02-12 6:34 ` Eric Biggers
2020-02-12 6:34 ` [f2fs-dev] " Eric Biggers
2020-02-12 6:57 ` Eric Biggers
2020-02-12 6:57 ` Eric Biggers
2020-02-12 6:57 ` [f2fs-dev] " Eric Biggers
2020-02-20 2:27 ` Daniel Rosenberg
2020-02-20 2:27 ` Daniel Rosenberg
2020-02-20 2:27 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 3:55 ` Eric Biggers
2020-02-12 3:55 ` Eric Biggers
2020-02-12 3:55 ` [f2fs-dev] " Eric Biggers
2020-02-08 1:35 ` [PATCH v7 3/8] f2fs: Use generic " Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 4:05 ` Eric Biggers
2020-02-12 4:05 ` Eric Biggers
2020-02-12 4:05 ` [f2fs-dev] " Eric Biggers
2020-02-08 1:35 ` [PATCH v7 4/8] ext4: " Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-08 1:35 ` [PATCH v7 5/8] fscrypt: Have filesystems handle their d_ops Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 4:33 ` Eric Biggers
2020-02-12 4:33 ` Eric Biggers
2020-02-12 4:33 ` [f2fs-dev] " Eric Biggers
2020-02-08 1:35 ` [PATCH v7 6/8] f2fs: Handle casefolding with Encryption Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 5:10 ` Eric Biggers
2020-02-12 5:10 ` Eric Biggers
2020-02-12 5:10 ` [f2fs-dev] " Eric Biggers
2020-02-12 5:55 ` Al Viro
2020-02-12 5:55 ` Al Viro
2020-02-12 5:55 ` [f2fs-dev] " Al Viro
2020-02-12 6:06 ` Eric Biggers
2020-02-12 6:06 ` Eric Biggers
2020-02-12 6:06 ` [f2fs-dev] " Eric Biggers
2020-02-12 5:47 ` Eric Biggers
2020-02-12 5:47 ` Eric Biggers
2020-02-12 5:47 ` [f2fs-dev] " Eric Biggers
2020-02-08 1:35 ` [PATCH v7 7/8] ext4: Hande casefolding with encryption Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 5:59 ` Eric Biggers
2020-02-12 5:59 ` Eric Biggers
2020-02-12 5:59 ` [f2fs-dev] " Eric Biggers
2020-02-08 1:35 ` [PATCH v7 8/8] ext4: Optimize match for casefolded encrypted dirs Daniel Rosenberg
2020-02-08 1:35 ` Daniel Rosenberg
2020-02-08 1:35 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
2020-02-12 6:12 ` [PATCH v7 0/8] Support fof Casefolding and Encryption Eric Biggers
2020-02-12 6:12 ` Eric Biggers
2020-02-12 6:12 ` [f2fs-dev] " Eric Biggers
2020-02-13 0:01 ` Daniel Rosenberg
2020-02-13 0:01 ` Daniel Rosenberg
2020-02-13 0:01 ` [f2fs-dev] " Daniel Rosenberg via Linux-f2fs-devel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8536b95971.fsf@collabora.com \
--to=krisman@collabora.com \
--cc=adilger.kernel@dilger.ca \
--cc=chao@kernel.org \
--cc=corbet@lwn.net \
--cc=drosen@google.com \
--cc=ebiggers@kernel.org \
--cc=jaegeuk@kernel.org \
--cc=kernel-team@android.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=richard@nod.at \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.