All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Daniel Lee <chullee@google.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>,
	linux-kernel@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: Introduce linear search for dentries
Date: Mon, 23 Dec 2024 00:26:30 -0800	[thread overview]
Message-ID: <Z2ketmZiWmUVddpt@infradead.org> (raw)
In-Reply-To: <20241220172136.1028811-1-chullee@google.com>

On Fri, Dec 20, 2024 at 09:21:36AM -0800, Daniel Lee wrote:
> This patch addresses an issue where some files in case-insensitive
> directories become inaccessible due to changes in how the kernel function,
> utf8_casefold(), generates case-folded strings from the commit 5c26d2f1d3f5
> ("unicode: Don't special case ignorable code points").

That also breaks all other direct hashed and needs to be fixed.

> 
> F2FS uses these case-folded names to calculate hash values for locating
> dentries and stores them on disk. Since utf8_casefold() can produce
> different output across kernel versions, stored hash values and newly
> calculated hash values may differ. This results in affected files no
> longer being found via the hash-based lookup.
> 
> To resolve this, the patch introduces a linear search fallback.
> If the initial hash-based search fails, F2FS will sequentially scan the
> directory entries.

That means you have really bad worst case behavior for negative lookups.
I don' think this is in any way a good idea.



_______________________________________________
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: Christoph Hellwig <hch@infradead.org>
To: Daniel Lee <chullee@google.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>, Chao Yu <chao@kernel.org>,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] f2fs: Introduce linear search for dentries
Date: Mon, 23 Dec 2024 00:26:30 -0800	[thread overview]
Message-ID: <Z2ketmZiWmUVddpt@infradead.org> (raw)
In-Reply-To: <20241220172136.1028811-1-chullee@google.com>

On Fri, Dec 20, 2024 at 09:21:36AM -0800, Daniel Lee wrote:
> This patch addresses an issue where some files in case-insensitive
> directories become inaccessible due to changes in how the kernel function,
> utf8_casefold(), generates case-folded strings from the commit 5c26d2f1d3f5
> ("unicode: Don't special case ignorable code points").

That also breaks all other direct hashed and needs to be fixed.

> 
> F2FS uses these case-folded names to calculate hash values for locating
> dentries and stores them on disk. Since utf8_casefold() can produce
> different output across kernel versions, stored hash values and newly
> calculated hash values may differ. This results in affected files no
> longer being found via the hash-based lookup.
> 
> To resolve this, the patch introduces a linear search fallback.
> If the initial hash-based search fails, F2FS will sequentially scan the
> directory entries.

That means you have really bad worst case behavior for negative lookups.
I don' think this is in any way a good idea.


  parent reply	other threads:[~2024-12-23  9:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-20 17:21 [f2fs-dev] [PATCH v2] f2fs: Introduce linear search for dentries Daniel Lee via Linux-f2fs-devel
2024-12-20 17:21 ` Daniel Lee
2024-12-20 21:00 ` [f2fs-dev] " Jaegeuk Kim via Linux-f2fs-devel
2024-12-20 21:00   ` Jaegeuk Kim
2024-12-23  8:26 ` Christoph Hellwig [this message]
2024-12-23  8:26   ` Christoph Hellwig
2024-12-23 16:57   ` [f2fs-dev] " Jaegeuk Kim via Linux-f2fs-devel
2024-12-23 16:57     ` Jaegeuk Kim
2025-01-03  9:24     ` [f2fs-dev] " Christoph Hellwig
2025-01-03  9:24       ` Christoph Hellwig
2025-01-06 21:18       ` [f2fs-dev] " Jaegeuk Kim via Linux-f2fs-devel
2025-01-06 21:18         ` Jaegeuk Kim

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=Z2ketmZiWmUVddpt@infradead.org \
    --to=hch@infradead.org \
    --cc=chullee@google.com \
    --cc=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /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.