Add getcpu system call support for getting a NUMA node of the current thread#1575
Open
Eugene-Usachev wants to merge 4 commits into
Open
Add getcpu system call support for getting a NUMA node of the current thread#1575Eugene-Usachev wants to merge 4 commits into
getcpu system call support for getting a NUMA node of the current thread#1575Eugene-Usachev wants to merge 4 commits into
Conversation
sunfishcode
reviewed
Feb 21, 2026
| /// [Linux]: https://man7.org/linux/man-pages/man2/getcpu.2.html | ||
| #[cfg(linux_kernel)] | ||
| #[inline] | ||
| pub fn getcpu() -> (usize, usize) { |
Member
There was a problem hiding this comment.
According to the Linux docs, the values written by getcpu have type unsigned int.
int getcpu(unsigned int *_Nullable cpu, unsigned int *_Nullable node);
Would it be better to reflect them here as u32, rather than usize?
I see that sched_getcpu already returns usize, but that appears to be an error.
Author
There was a problem hiding this comment.
I tried to do the same as sched_getcpu. To be honest, I am not sure what users prefer more here. I use numa_node: usize in my code, but I can't say everyone does it. If you want me to change it I can do it but I think it is not important.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not much time ago I needed to get a NUMA node of the current thread. Linux provides the
getcpusystem call for it. But I did not find any Rust library that provides this function. I read this repository code, and I like what you are doing, so I want to help you to extend the functionality of this library.I implemented the
getcpusyscall for Linux only. Also, I develop with WSL, which adds \r\n at the end of lines, so I patched tests for not reading the end of lines.