-
Notifications
You must be signed in to change notification settings - Fork 359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simpler clone #2196
Simpler clone #2196
Conversation
9fee6fe
to
0a6fe58
Compare
0a6fe58
to
9ceff78
Compare
e964e14
to
d31700b
Compare
This improves boot time as the APs don't have to contend when creating the intialized CPUs vector.
af9fa71
to
c7ee756
Compare
Allows the underlying devices to know about the old CPU as well as the ability to migrate a network stack to any CPU. It is still recommended to only migrate to the CPU you are currently on, and to make sure the OS is quiet during this operation.
With -march=native enabled, the compiler generates some broken code. It's almost impossible to solve, so I don't even bother trying. Disabling optimizations and inlining all the PCI read/write functions had no effect. Virtionet driver won't initialize past the probe_resources() function, but the other drivers do.
We'll get to this once everything is building again 😊 |
Hi, I've finally gotten around to this. As we've discussed offline, we will branch off 0.16.x from v0.15.0 to recover the original SMP implementation without pthreads (which we have thanks to you), but I'd be also be happy to have the "all pthreads" approach as a separate platform. We could split x86_pc into
I've also tried to merge this PR and upgraded to musl 1.1.24 in a new branch, https://github.com/includeos/IncludeOS/tree/pthread-kernel-musl-1.1.24 That branch however, fails to initialize libc and keeps rebooting for me. I don't think this PR causes that issue - on the contrary I think there's been a latent ghost on master, probably since before v0.15, which may be related to the new toolchain and new compiler, to my mmap / allocator changes that we shoehorned in, or something else entirely. I'll be reworking the boot sequence in the new release branch to try to simplify all of that and will then revisit both of the mentioned pthread branches once we get to a state where we have something running with the original SMP library again, and importantly, tests and ideally CI. If you decide to get this into a working state, feel free to take ownership over |
This replaces the syscall-based cooperative threads with call-based, which will be much much faster. Also removes the children-management, which never had any use. Threads are much slimmer now.
Also improves reliability of blocking calls. It was possible for the system to go to sleep while the event that would have unblocked had already been processed. Fixed now.
This PR needs musl 1.1.24 to work.