https://linen.dev/ logo
Join Discord
Powered by
# general
  • c

    creamy-advantage-22176

    08/27/2025, 2:33 PM
    On windows though, is WSL actually more "costly" than a VM?
  • c

    creamy-advantage-22176

    08/27/2025, 2:33 PM
    although NTFS 😔
  • b

    blue-flower-12209

    08/27/2025, 2:35 PM
    Probably, is my guess
  • b

    blue-flower-12209

    08/27/2025, 2:35 PM
    Not as good as native
  • b

    better-helmet-21984

    08/27/2025, 2:44 PM
    https://lore.kernel.org/io-uring/6adf4bd06950d999f127595fe4d24d048ce03f5f.1756300192.git.asml.silence@gmail.com/T/#u
  • b

    better-helmet-21984

    08/27/2025, 2:44 PM
    as per our discussion yesterday
  • b

    better-helmet-21984

    08/27/2025, 2:45 PM
    patch 1 can be ignored, patch 2 is identical to the one I did (lol)
  • b

    better-helmet-21984

    08/27/2025, 2:45 PM
    but I like the query interface better
  • c

    creamy-advantage-22176

    08/27/2025, 2:57 PM
    not sure I agree, to me it seems like a more complicated interface which is harder to reason about
  • c

    creamy-advantage-22176

    08/27/2025, 2:59 PM
    I don't understand the need for the additional
    IO_URING_QUERY_OPCODES
    enum with the additional
    io_uring_query_hdr
    arguments over the versioned struct approach tbh
  • a

    ambitious-wire-70260

    08/27/2025, 3:09 PM
    What is the purpose of
    sigmask_sz
    in
    io_uring_getevents_arg
    ?
  • b

    better-helmet-21984

    08/27/2025, 3:32 PM
    it's mean to replace the probe variant, so basically a fuller interface for both the new bits we discussed yesterday, but also serve as the probe interface. which I do think is a good thing. I'll spend some time later today playing with this and see where we end up
  • c

    creamy-advantage-22176

    08/27/2025, 3:34 PM
    Hmm
  • a

    ambitious-wire-70260

    08/27/2025, 4:18 PM
    I can't seem to make the
    io_uring_enter
    sigmask argument work. I have this SIGPIPE coming from a socket write that comes through
    io_uring_enter
    . If I use
    pthread_sigmask
    to mask it, the signal goes away. If I use the supposedly equivalent sigmask argument, it still comes through.
  • b

    better-helmet-21984

    08/27/2025, 4:22 PM
    what does your io_uring_enter() call look like?
  • a

    ambitious-wire-70260

    08/27/2025, 4:29 PM
    Copy code
    CPP
        sigset_t sigset_1;
        vsm_verify(pthread_sigmask(SIG_BLOCK, nullptr, &sigset_1) == 0);
        debug_print_sigset("old", sigset_1);
    
        vsm_verify(sigaddset(&sigset_1, SIGPIPE) == 0);
        debug_print_sigset("new", sigset_1);
    
    #if 0
        // Use pthread_sigmask to block SIGPIPE temporarily:
    
        sigset_t sigset_2;
        vsm_verify(pthread_sigmask(SIG_BLOCK, &sigset_1, &sigset_2) == 0);
    
        struct sigset_cancel
        {
            sigset_t* sigset;
    
            ~sigset_cancel()
            {
                vsm_verify(pthread_sigmask(SIG_SETMASK, sigset, nullptr) == 0);
            }
        };
        sigset_cancel sigmask_cancel;
        sigmask_cancel.sigset = &sigset_2;
    #endif
    
        fprintf(stderr, "enter-1\n");
        int const r = io_uring_enter(
            static_cast<unsigned>(io_uring_fd),
            to_submit,
            min_complete,
            flags,
            &sigset_1);
        fprintf(stderr, "enter-2\n");
  • a

    ambitious-wire-70260

    08/27/2025, 4:30 PM
    Copy code
    sigset (old):
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
    sigset (new):
      00100000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
      00000000000000000000000000000000
    enter-1
    vasama@desktop:~/c/allio/build/gcc-asan/Debug$ echo $?
    141
  • a

    ambitious-wire-70260

    08/27/2025, 4:42 PM
    Oh, no, I think I've misunderstood how signal masking works. Even if it's masked, it still gets raised when unmasked.
  • a

    ambitious-wire-70260

    08/27/2025, 4:45 PM
    But that leaves me with a new question: what is the use case for the sigmask argument in
    io_uring_enter
    ?
  • b

    blue-flower-12209

    08/29/2025, 5:05 PM
    Hmm, out of curiosity, is it normal for localhost tcp zc send to actually copy?
  • b

    blue-flower-12209

    08/29/2025, 5:06 PM
    I was casually re-reading the docs today and saw that we could introspect the send nowadays
  • b

    blue-flower-12209

    08/29/2025, 5:07 PM
    This assertion is tripping for me in my tests:
    assert!(cqe.res != liburing_rs::IORING_NOTIF_USAGE_ZC_COPIED as _);
    Tbf, I am using really small sends in my unit tests so my guess is that it's better to copy for small buffers and do real zc for large buffers
  • b

    blue-flower-12209

    08/29/2025, 5:07 PM
    Maybe I just need another unit test for large sends, at like 256kb or something
  • b

    better-helmet-21984

    08/30/2025, 3:51 PM
    it is yes, on linux localhost is an odd concoction. so yes, you won't have zc working there
  • b

    blue-flower-12209

    08/30/2025, 4:24 PM
    Awesome. Thanks!
  • h

    hallowed-insurance-55179

    09/03/2025, 9:16 AM
    Hi @gorgeous-horse-28122 , I was wondering: Is it expected that zc rx still works if the
    if_rxq
    queue-id in
    io_uring_zcrx_ifq_reg
    is different from the queue setup via flow-steering? In my test, the socket is still receiving the data.
  • g

    gorgeous-horse-28122

    09/05/2025, 3:52 PM
    you'll receive the data but it'll be copied
  • c

    creamy-advantage-22176

    09/08/2025, 6:03 PM
    @better-helmet-21984 I remember a while ago you mentioned fsync & sync_file_range require a blocking issue (so they're on the worker pool?) I assume FUA writes are not impacted in the same way, right?
  • b

    better-helmet-21984

    09/08/2025, 6:13 PM
    correct
  • c

    creamy-advantage-22176

    09/08/2025, 6:20 PM
    Lovely