STRUCT DMATEST_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct dmatest_params(9) β€” bestie edition πŸŽ€

okay so first things first: this is a page from the Kernel API Manual, and we're talking about struct dmatest_params β€” the literal vibe-check control panel for the dmatest situation. sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

struct dmatest_params β€” test parameters. that's it, that's the whole vibe. it's the little struct that holds all the knobs you can twist before the test runs. iconic honestly πŸ‘‘


🌸 SYNOPSIS 🌸

here's the whole thing laid out, and no i did not touch a single character, look:

struct dmatest_params {
    bool nobounce;
    unsigned int    buf_size;
    char channel[20];
    char device[32];
    unsigned int    threads_per_chan;
    unsigned int    max_channels;
    unsigned int    iterations;
    unsigned int    xor_sources;
    unsigned int    pq_sources;
    int timeout;
    bool noverify;
    bool norandom;
    int alignment;
    unsigned int    transfer_size;
    bool polled;
 };

like… she has range πŸ’œ. bools, unsigned ints, chars in arrays, an int or two β€” a whole little ensemble cast. main character energy fr fr.


πŸ¦‹ Members πŸ¦‹

okay this is the part where we meet everyone in the group chat, one by one:

  • nobounce β€” prevents using the swiotlb buffer. like… no bouncing. we stay grounded 🫢
  • buf_size β€” the size of the memcpy test buffer. it is what it says on the tin, bestie ✨
  • channel β€” the bus ID of the channel to test. a char array of 20, so πŸ‘€ watch your length
  • device β€” the bus ID of the DMA Engine to test. this one gets 32 chars of room, generous queen πŸ’…
  • threads_per_chan β€” how many threads get started per channel. the more the merrier, allegedly
  • max_channels β€” the maximum number of channels to use. a whole ceiling on the chaos
  • iterations β€” how many iterations happen before stopping the test. iykyk 😭
  • xor_sources β€” the number of xor source buffers
  • pq_sources β€” the number of p+q source buffers. p and q, both invited to the party πŸŽ€
  • timeout β€” transfer timeout in msec, and lowkey important: -1 means infinite timeout. no clock, no stress ⭐
  • noverify β€” disables data verification. turning off the checking era πŸ™ˆ
  • norandom β€” disables random offset setup. we're going predictable this time
  • alignment β€” custom data address alignment, taken as 2^alignment. yes it's an exponent, no you can't just pass the byte count, read it again bestie πŸ’€
  • transfer_size β€” custom transfer size in bytes
  • polled β€” use polling for completion instead of interrupts. different technique, same goal 🌈
no cap: every single field is listed above. if you were looking for a shortcut through this list β€” there isn't one, and honestly why would you want one πŸ’–

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/dma/dmatest.c
  • struct dmatest_info(9)

and that's the whole page, periodt πŸ‘‘. this lil beauty lives in ./drivers/dma, dated October 2026 β€” so yes, mark your calendars, the struct dmatest_params(9) girlies are thriving πŸ§šπŸ’œ go read dmatest.c and slay ✨

πŸ“¦ where this page comes from