Repository navigation
0.22.0 --- openkal 0.21: instructions from a file; an ended program's processor time; a program started without copying this one; kal_alloc carved as it is used - #46
Merged
Conversation
… processor time; a program started without copying this one; kal_alloc carved as it is used kal_exec_map_part maps the file's pages over part of a region (mmap with MAP_FIXED, private), read or executed; KAL_EXEC_PROP_FILE is claimed. A volume mounted without execution reports kal_err_not_supported. kal_process_info reports cpu_ns of an ended program from the record waitid(WNOWAIT) reads, until kal_process_close collects it. kal_process_spawn starts the program with clone(CLONE_VM | CLONE_VFORK) on a stack of its own (__okl_clone, now in both arrangements), with every request held until it is replaced; the started image sets each handled request to its default first and reads the caller's arguments without writing them. A copy of the address space cost 1.4 ms in the kernel and about 1 900 faults for each worker a language server started. kal_alloc carves a chunk's blocks as they are handed out: a free list threaded through each 1 MiB chunk made it resident at once (6 MiB in every program). An alignment wider than 4096 bytes is mapped, since a block is aligned only to its size or to the page. tests/openkal_0_21.cpp. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ad without a lock kal_fs_info and kal_fs_open check a name and terminate it in one pass (accepted_name). The volume a file enquiry asks about is found without the lock every enquiry took: a reader takes a sequence before and after the slots and reads again if a writer was between. fill_info writes the caller's structure directly. What an enquiry costs beyond the kernel's own fell from 28 ns to 19 ns (stat of a short name, 266 ns in the kernel). Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…kl::clone_on_stack The independence check permits a reference across this package's objects only to a name of namespace okl; process.o referred to __okl_clone itself. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
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.
openkal-linux 0.22.0 for openkal 0.21.
kal_exec_map_part(mmap MAP_FIXED, private),KAL_EXEC_PROP_FILE.cpu_nsfrom thewaitid(WNOWAIT)record.kal_process_spawnstarts the program withclone(CLONE_VM | CLONE_VFORK)on its own stack; a copy of the address space cost 1.4 ms and about 1 900 faults per worker in a language server.kal_alloccarves a chunk as it is used (6 MiB had been resident in every program); alignments wider than 4096 bytes are mapped.tests/openkal_0_21.cpp. Local: conformance 321/321 held, tests 19/19.Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com