Re: [PATCH v2] Huge performance boost for recursion (cp, du, find, ls, rm, mv)
"Roberto A. Foglietta via busybox" <[email protected]> Sat, 11 Apr 2026 09:54:36 +0200
| Newsgroups | gmane.linux.busybox |
|---|---|
| Message-ID | <CAJGKYO6ORHHB8VgBBR3aPM6YLWha3oUxBK1Y0EQRgYhZNARUFg@mail.gmail.com> |
On Sat, 11 Apr 2026 at 05:30, Roberto A. Foglietta <[email protected]> wrote: > > On Sat, 11 Apr 2026 at 00:15, Jody Bruchon <[email protected]> wrote: > > > > Thanks for trying to help. It's OK, I realize that someone already > > "merged it" with my original code locked in an #if 0 block and a > > differently optimized version applied without credit, so I consider this > > matter closed. Please feel free to purge it. I'm not interested in > > contributing to the project further. > > Without credit isn't good. Anyway, can you provide more information > about? The code you are talking about isn't into the master branch of > busybox.net > ok, I got the point. A) This patchset from Sertonix + e139ba59e - 2026-03-29 - recursive_action: prevent file type confusion when files, p.7 + 0c74c3734 - 2026-03-29 - recursive_action: prevent file type confusion when files, p.6 + 1dbddc8a0 - 2026-03-29 - recursive_action: prevent file type confusion when files, p.5 + 6a3c6e6ac - 2026-03-29 - recursive_action: prevent file type confusion when files, p.4 + ef90136cf - 2026-03-29 - recursive_action: prevent file type confusion when files, p.3 + 5a9f95f73 - 2026-03-29 - recursive_action: prevent file type confusion when files, p.2 + 0ea29dd56 - 2026-03-29 - recursive_action: prevent file type confusion when files, p.1 B) conflicts with other patchset from Jody + e2d50a648 - 2026-04-02 - cache performance boost for recursion, xmalloc + 5cfaaac65 - 2026-04-02 - cache performance boost for recursion, cleanup + 198eb0efb - 2026-04-02 - cache performance boost for recursion This was clear even before, but it wasn't clear that A) includes changes inspired by B), apparently. Moreover, A) has IMHO an issue here: if (state->depth == 1 && ( !(statbuf->st_mode & (S_IFREG | S_IFLNK)) || invalid_name(state->fileName) || (!(option_mask32 & OPT_l) && faccessat(state->dirfd, state->baseName, W_OK, 0) != 0)) Because the run_parts is supposed to execute, not write parts. Why change the X_OK check? Moreover, B) has in the comment an output from cache grind. For this reason, and because it is better dealing with patches (*) I decided to refactoring some branches: - bugfixes renamed bugfixes.old - the pachset A) is moved in 'sertonix' new branch - the patchset B) has been integrated into 'jodyb2' new branch - the branch 'bugfixes' doesn't include A) patchset anymore - the branch 'features' includes b) patchset I think the correct way to proceed is that Sertonix remade its patch as "bugfix" providing a v2 based on the 'features' branch in such a way that the contribution from Jody will be integrated, if it is going to fix or improve it. Or any other manner to proceed agreed between Jody and Sertonix. (*) sorry, I did not have to deal with busybox for years, cold starts aren't the best...) Best regards, R-