Page MenuHomeFreeBSD

zfs: Enable HAVE_LARGE_STACKS
AbandonedPublic

Authored by kbowling on Jul 12 2021, 9:45 PM.

Details

Reviewers
mjg
imp
allanjude
mm
Group Reviewers
ZFS
Summary

Corresponds to https://github.com/openzfs/zfs/pull/12350/files

The goal of these two edits is to define it for the kernel portion as well as userland although I don't know if I did it in the best spot in either case (see https://github.com/openzfs/zfs/pull/4059 for context). It would be safe to enable on all userland.

MFC: 1 month

Diff Detail

Repository
R10 FreeBSD src repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

kbowling added a reviewer: allanjude.
kbowling edited the summary of this revision. (Show Details)

Userland portion LGTM.

For kernel, I'd really prefer we derive the value from KSTACK_PAGES instead of from architecture, but it can be tricky to get right with Makefile, so consider it optional. I wonder if it's possible to just do it with zfs_config.h instead?

sys/modules/zfs/Makefile
42

[OPTIONAL] I don't really like this approach here, a better source of truth would be KSTACK_PAGES in my opinion.

Can we consult the value of KSTACK_PAGES in opt_kstack_pages.h and only fall back to guess the value if that's not available?

Something like:

KSTACK_PAGES!= sed -n '/KSTACK_PAGES/p' ${KERNBUILDDIR}/opt_kstack_pages.h

would get the value (you do need to check if KERNBUILDDIR is defined and if opt_kstack_pages.h exists, though.

Or, personally I'd probably do it in a place like zfs_config.h.

kbowling added a subscriber: mav.

@mav @mm if the upstream PR is merged this won't be necessary. The only question I have is how to MFC the change to stable/13? Do I need to have it merged back upstream first?

@mav @mm if the upstream PR is merged this won't be necessary. The only question I have is how to MFC the change to stable/13? Do I need to have it merged back upstream first?

Yes. It needs to go into the stable branch upstream since that's where all merges to stable/13 come from.

This will be handled completely by vendor imports