News for hackers. Stuff that matters.
Re:Show HN: Up to 100x Faster FastAPI with simdjson and io_u... by Sesse__ on Monday March 06, 2023 @12:47PM (#35044512)
Also, generally higher overhead, more memory use for very large files (the page tables are not free), and no way of handling errors.
Re:Show HN: Up to 100x Faster FastAPI with simdjson and io_u... by loeg on Monday March 06, 2023 @01:16PM (#35045101)
> more memory use for very large files (the page tables are not free),

They're... kinda free (in terms of capacity). A PTE or PDE is 64 bits per page. Even with 4kB pages, this is 8/4096 = 0.2% overhead. Churning the page tables and TLB as you walk the file is expensive, or at least historically was expensive (used to be that removing an entry required flushing the entire TLB; I don't think that's true anymore).

If you can use MAP_HUGE_2MB, this drops off to 0.00038% and the TLB impact goes way down.

> no way of handling errors.

Yeah, this aspect is really significant. Thanks for mentioning it.

Re:Show HN: Up to 100x Faster FastAPI with simdjson and io_u... by Sesse__ on Monday March 06, 2023 @06:12PM (#35049175)
0.2% really isn't free. If you have a data set of 10 TB (one small-ish HDD right now, or one large SSD), that's ~20 GiB in page tables alone. If you can use 2MB pages, then sure, but I would assume that also limits your page-in granularity.
Re:Show HN: Up to 100x Faster FastAPI with simdjson and io_u... by loeg on Monday March 06, 2023 @06:37PM (#35049450)
Oh, you're right. I wasn't remembering we needed PTEs to cover the data not paged in as well as the data in RAM. Sorry.