On Mon, 24 Feb 2025 at 15:47, Brendan Jackman <jackm...@google.com> wrote:
> +static inline struct page *alloc_pages_force_nid(struct kunit *test,
> +                                                gfp_t gfp, int order, int 
> nid)
> +{
> +       NODEMASK_ALLOC(nodemask_t, nodemask, GFP_KERNEL);
> +       struct page *page;
> +
> +       KUNIT_ASSERT_NOT_NULL(test, nodemask);
> +       kunit_add_action(test, action_nodemask_free, &nodemask);
> +       nodes_clear(*nodemask);
> +       node_set(nid, *nodemask);
> +
> +       page = __alloc_pages_noprof(GFP_KERNEL, 0, nid, nodemask);

Oops, it's ignoring the gfp argument here.

> +       { .gfp_flags = GFP_DMA32,       .want_zone = ZONE_NORMAL },

And with that fixed, it becomes clear DMA32 allocations can't be
expected to succeed in this zone setup.

(Anyway, it's a bit of a silly test regardless, just something to
illustrate the KUnit idea).

Reply via email to