๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

PR #3274 โ€” io_uring_cmd NVMe passthrough

[!tldr] ์—…๋ฌด ๊ด€์  takeaway Ankit Kumar๊ฐ€ raw_block์— io_uring_cmd NVMe passthrough๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” PR. FDP hint(dspec) ์ „๋‹ฌ์˜ ์ „์ œ "๋ฐฐ๊ด€" ์ž‘์—…. M2(setup flag ํŠœ๋‹)๋Š” ์ด PR ์ดํ›„ ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋นˆ ์ž๋ฆฌ. ์ƒ์„ธ ๋ถ„์„์€ [[raw_block-io_uring-cmd]] ์ฐธ์กฐ.


๊ธฐ๋ณธ ์ •๋ณดโ€‹

ํ•ญ๋ชฉ๋‚ด์šฉ
PR ๋ฒˆํ˜ธ#3274
์ž‘์„ฑ์žAnkit Kumar (@ankit-sam)
์ƒํƒœํ™œ๋ฐœํžˆ ๊ฐฑ์‹  ์ค‘ (open)

์ฃผ์š” ๋ณ€๊ฒฝโ€‹

  • IoUring::builder() ์ „ํ™˜ (๊ธฐ์กด ์ง์ ‘ ์ƒ์„ฑ โ†’ builder ํŒจํ„ด)
  • register_fixed_buffers_from_allocator โ€” fixed buffer ๋“ฑ๋ก
  • io_uring_cmd NVMe passthrough (NvmeUringCmd ๊ตฌ์กฐ์ฒด, dspec ํ•„๋“œ ํฌํ•จ)
  • big SQE 128B ์ง€์› (FDP hint ์ „๋‹ฌ์— ํ•„์š”)

์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ์ด์œ โ€‹

์ด PR์ด ๋จธ์ง€๋˜๋ฉด:

  • M1 (non-MP io_uring ์‹ค์งˆ ์—ฐ๊ฒฐ) ์ฐฉ์ˆ˜ ๊ฐ€๋Šฅ
  • M2 (io_uring setup flag ํŠœ๋‹ โ€” SINGLE_ISSUER ๋“ฑ) ์ฐฉ์ˆ˜ ๊ฐ€๋Šฅ โ†’ ์šฐ๋ฆฌ ๊ธฐ์—ฌ ๋นˆ ์ž๋ฆฌ

๊ด€๋ จ ํŽ˜์ด์ง€โ€‹

  • [[raw_block-io_uring-cmd]] โ€” PR ์ƒ์„ธ ๋ถ„์„ (์ปค๋ฐ‹๋ณ„ ๊ตฌ์กฐ, FDP dspec ํ•„๋“œ)
  • [[raw_block-๊ฐœ์„ -Task]] โ€” M1/M2 ์ฐฉ์ˆ˜ ์กฐ๊ฑด