async_gen_syndrome(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

async_gen_syndrome β€” asynchronously calculate a raid6 syndrome

okay so hi bestie, this is the async_gen_syndrome(9) page from the Kernel API Manual β€” yes, that manual, and yes, we’re doing kernel math with main-character energy. ✨


✨ SYNOPSIS ✨

struct dma_async_tx_descriptor * async_gen_syndrome (struct page
       **blocks , unsigned int *offsets , int disks , size_t len , struct
       async_submit_ctl *submit );

πŸŽ€ ARGUMENTS πŸŽ€

  • blocks β€” source blocks from idx 0..disks-3, P at disks-2, and Q at disks-1.
  • offsets β€” offset array into each block (src and dest) to start transaction.
  • disks β€” number of blocks (including missing P or Q, see below).
  • len β€” length of operation in bytes.
  • submit β€” submission/completion modifiers.

πŸ¦‹ DESCRIPTION πŸ¦‹

General note, and this is important math lore: this routine assumes a field of GF(2^8) with a primitive polynomial of 0x11d and a generator of {02}. 🧚

The page picks up mid-thought here, so I’m keeping the exact fragment: β€œboth) from the calculation by setting blocks[disks-2] or blocks[disks-1] to NULL.”

πŸ’€ Bestie, when P or Q is omitted, len must be <= PAGE_SIZE, because a temporary buffer of this size is used in the synchronous path. No cap.

disks always accounts for both destination buffers.

If any source buffers (blocks[i] where i < disks - 2) are set to NULL, those buffers will be replaced with the raid6_zero_page in the synchronous path and omitted in the hardware-asynchronous path. Slay, but carefully. πŸ’…

🌈 SEE ALSO 🌈

  • Kernel file ./crypto/async_tx/async_pq.c β€” go read it, bestie.
  • async_syndrome_val(9) β€” another reference, iykyk.

kisses and kernel dust πŸ’…πŸ«Ά β€” this page lives in ./crypto/async_tx, dated October 2026, and it’s the async_gen_syndrome(9) glow-up. periodt. πŸŽ€

πŸ“¦ where this page comes from