{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":115159616,"defaultBranch":"master","name":"nanos","ownerLogin":"nanovms","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-12-23T00:25:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/38020270?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719849450.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"ee1681d607a8f5174ba82289ff6300383a962869","ref":"refs/heads/fix/cwd","pushedAt":"2024-07-01T15:57:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"exec_elf_finish(): add setting of cwd for non-static executables\n\nConfiguration of the current working directory via the `cwd`\nattribute of the manifest was being done only for statically linked\nprogram executables. This change enables the `cwd` attribute to\ntake effect also for non-static executables.\nIn addition, a missing deallocation of the executable file buffer\nfor non-static executables is being fixed.\n\nCloses https://github.com/nanovms/ops/issues/1632","shortMessageHtmlLink":"exec_elf_finish(): add setting of cwd for non-static executables"}},{"before":"5ec573ededfff8e3ebf8c0d235ac8a232d5f5c31","after":null,"ref":"refs/heads/feature/getsockopt-tcp","pushedAt":"2024-06-28T16:13:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"}},{"before":"56490868917ab8021c702ec7f21b373fe54aff67","after":"5ec573ededfff8e3ebf8c0d235ac8a232d5f5c31","ref":"refs/heads/master","pushedAt":"2024-06-28T16:13:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"getsockopt(SOL_TCP): add support for TCP_INFO and TCP_CONGESTION\n\nThese getsockopt values are used by iperf3.","shortMessageHtmlLink":"getsockopt(SOL_TCP): add support for TCP_INFO and TCP_CONGESTION"}},{"before":null,"after":"5ec573ededfff8e3ebf8c0d235ac8a232d5f5c31","ref":"refs/heads/feature/getsockopt-tcp","pushedAt":"2024-06-28T08:22:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"getsockopt(SOL_TCP): add support for TCP_INFO and TCP_CONGESTION\n\nThese getsockopt values are used by iperf3.","shortMessageHtmlLink":"getsockopt(SOL_TCP): add support for TCP_INFO and TCP_CONGESTION"}},{"before":"747cea9e1ef857135bdc53af963d04e6b6b9b316","after":"ca27dbd50139e26f2dfc4fff086dfa7b61defafa","ref":"refs/heads/fix/program-paging","pushedAt":"2024-06-26T17:20:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"On-demand program file paging: fix initialization of BSS areas\n\nWhen on-demand paging of the program file is enabled, BSS areas in\npages faulted-in on demand are zeroed in-place, i.e. a newly mapped\npage retrieved via the page cache is zeroed starting from the BSS\noffset set up when initializing the relevant vmap. This creates a\nproblem if the page contains other data (e.g. from another loadable\nsection of the program) at or after the BSS offset, in which case\nthis data would be overwritten.\nThis change fixes the above issue by using a separate page (instead\nof the page from the page cache) where the initialized program data\n(located before the BSS offset) is copied from the page cache page,\nand the rest of the page (starting at the BSS offset) is zeroed\nout. Closes https://github.com/nanovms/ops/issues/1629.\n\nThe on-demand paging implementation is being reworked to address\nthe following shortcomings:\n- A vmap struct cannot be referenced without holding the vmap lock,\nbecause it may be modified and/or deallocated at any time (e.g.\nif the access protection flags of contiguous memory areas are\nmodified)\n- Parallel handling of page faults from different CPUS for the\nsame page cannot be safely handled via a process-global pending\nfault list, because it is possible for a faulting CPU to create a\nnew pending fault for a given page and then complete it before\nanother faulting CPU processes a fault for the same page: in this\ncase, the second CPU would not find any pending fault for the page,\neven though the fault has been handled by the first CPU\nThe reworked implementation allows multiple faults to be pending\nsimultaneously for the same page, and relies on the page table lock\nto prevent multiple mappings of the same page by different CPUs.","shortMessageHtmlLink":"On-demand program file paging: fix initialization of BSS areas"}},{"before":"4504ff0185acb5e9d63c0ca969f6cd7f923117f5","after":"747cea9e1ef857135bdc53af963d04e6b6b9b316","ref":"refs/heads/fix/program-paging","pushedAt":"2024-06-23T19:01:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Page fault: fix handling of faults in kernel contexts\n\nIt is possible for a page fault to occur in a kernel context: for\nexample, when setting up a signal frame on the stack of a user\nthread, if the relevant page of the stack is not resident in memory\nit will cause a fault. In these cases, if the fault cannot be\nresolved synchronously (e.g. because a filesystem sync to disk is\nneeded to free up some memory), the existing code panics at an\nassert(!is_kernel_context(ctx)) in the interrupt handler triggered\nby the fault.\nThis change removes the above assert() so that page faults in kernel\ncontexts are correctly processed.","shortMessageHtmlLink":"Page fault: fix handling of faults in kernel contexts"}},{"before":null,"after":"4504ff0185acb5e9d63c0ca969f6cd7f923117f5","ref":"refs/heads/fix/program-paging","pushedAt":"2024-06-23T17:55:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Page fault: fix handling of faults in kernel contexts\n\nIt is possible for a page fault to occur in a kernel context: for\nexample, when setting up a signal frame on the stack of a user\nthread, if the relevant page of the stack is not resident in memory\nit will cause a fault. In these cases, if the fault cannot be\nresolved synchronously (e.g. because a filesystem sync to disk is\nneeded to free up some memory), the existing code panics at an\nassert(!is_kernel_context(ctx)) in the interrupt handler triggered\nby the fault.\nThis change removes the above assert() so that page faults in kernel\ncontexts are correctly processed.","shortMessageHtmlLink":"Page fault: fix handling of faults in kernel contexts"}},{"before":"56490868917ab8021c702ec7f21b373fe54aff67","after":null,"ref":"refs/heads/fix/vitio-9p","pushedAt":"2024-06-20T08:36:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"}},{"before":"0c267e70e1ae826adf746c10f3bc25e06f8ddab5","after":"56490868917ab8021c702ec7f21b373fe54aff67","ref":"refs/heads/master","pushedAt":"2024-06-20T08:35:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Virtio-9P device attach: fix initialization of virtio_9p struct\n\nSince commit d037970c, in multi-vCPU instances root filesystem\ninitialization can complete before PCI bus discovery; this means\nthat any filesystem mount points specified in the manifest options\ncan be already processed by the time a virtio-9p device is probed\nand a corresponding volume is added; this in turn means that the\n`volume_add()` function called by `v9p_dev_attach()` can trigger a\ndirect call to `v9p_fs_init()`.\nThe `v9p_fs_init()` function uses the `general` field of the\n`virtio_9p` struct, which in the current code is initialized after\ncalling the `volume_add()` function; this causes `v9p_fs_init()`\nto access an uninitialized pointer, leading to an unhandled page\nfault. The same issue applies to the `backed` field of the struct.\nThis change fixes the above issue by moving the initialization of\nthe struct fields before the call to `volume_add()`. In addition,\nthe unused `dev` field is being removed, and setting the DRIVER_OK\nflag in the device status field is being moved before the call to\n`volume_add()` (according to the virtio specs, a driver must not\nsend any buffer available notifications to the device before\nsetting DRIVER_OK).","shortMessageHtmlLink":"Virtio-9P device attach: fix initialization of virtio_9p struct"}},{"before":"5f44919f939736d1e365a42ab077aac1dd0a32ca","after":"56490868917ab8021c702ec7f21b373fe54aff67","ref":"refs/heads/fix/vitio-9p","pushedAt":"2024-06-20T08:12:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Virtio-9P device attach: fix initialization of virtio_9p struct\n\nSince commit d037970c, in multi-vCPU instances root filesystem\ninitialization can complete before PCI bus discovery; this means\nthat any filesystem mount points specified in the manifest options\ncan be already processed by the time a virtio-9p device is probed\nand a corresponding volume is added; this in turn means that the\n`volume_add()` function called by `v9p_dev_attach()` can trigger a\ndirect call to `v9p_fs_init()`.\nThe `v9p_fs_init()` function uses the `general` field of the\n`virtio_9p` struct, which in the current code is initialized after\ncalling the `volume_add()` function; this causes `v9p_fs_init()`\nto access an uninitialized pointer, leading to an unhandled page\nfault. The same issue applies to the `backed` field of the struct.\nThis change fixes the above issue by moving the initialization of\nthe struct fields before the call to `volume_add()`. In addition,\nthe unused `dev` field is being removed, and setting the DRIVER_OK\nflag in the device status field is being moved before the call to\n`volume_add()` (according to the virtio specs, a driver must not\nsend any buffer available notifications to the device before\nsetting DRIVER_OK).","shortMessageHtmlLink":"Virtio-9P device attach: fix initialization of virtio_9p struct"}},{"before":"c75fef98f17a4e46325dc55bcec32b279e2effab","after":null,"ref":"refs/heads/x86mac","pushedAt":"2024-06-17T14:49:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"eyberg","name":"Ian Eyberg","path":"/eyberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22410?s=80&v=4"}},{"before":"e9c8669a3d57aa6660de205c3d26d6b4bd0dbe33","after":"0c267e70e1ae826adf746c10f3bc25e06f8ddab5","ref":"refs/heads/master","pushedAt":"2024-06-17T14:49:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"eyberg","name":"Ian Eyberg","path":"/eyberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22410?s=80&v=4"},"commit":{"message":"rm nightly x86 mac runner; change default mac runner to arm (#2031)\n\n* rm nightly x86 mac runner; change default mac runner to arm\r\n\r\n* yank build-mac","shortMessageHtmlLink":"rm nightly x86 mac runner; change default mac runner to arm (#2031)"}},{"before":"b2624578c6cb21d6a68567e0ddf7ad84fb12d0d9","after":"c75fef98f17a4e46325dc55bcec32b279e2effab","ref":"refs/heads/x86mac","pushedAt":"2024-06-17T14:28:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"eyberg","name":"Ian Eyberg","path":"/eyberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22410?s=80&v=4"},"commit":{"message":"yank build-mac","shortMessageHtmlLink":"yank build-mac"}},{"before":null,"after":"b2624578c6cb21d6a68567e0ddf7ad84fb12d0d9","ref":"refs/heads/x86mac","pushedAt":"2024-06-16T21:53:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"eyberg","name":"Ian Eyberg","path":"/eyberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22410?s=80&v=4"},"commit":{"message":"rm nightly x86 mac runner; change default mac runner to arm","shortMessageHtmlLink":"rm nightly x86 mac runner; change default mac runner to arm"}},{"before":"c2e728d02fa6ee196edf87c561aa6d480d1738c3","after":"e9c8669a3d57aa6660de205c3d26d6b4bd0dbe33","ref":"refs/heads/master","pushedAt":"2024-06-16T16:45:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"eyberg","name":"Ian Eyberg","path":"/eyberg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22410?s=80&v=4"},"commit":{"message":"adding notes on opening tkts","shortMessageHtmlLink":"adding notes on opening tkts"}},{"before":null,"after":"5f44919f939736d1e365a42ab077aac1dd0a32ca","ref":"refs/heads/fix/vitio-9p","pushedAt":"2024-06-15T07:06:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Virtio-9P device attach: fix initialization of virtio_9p struct\n\nSince commit d037970c, in multi-vCPU instances root filesystem\ninitialization can complete before PCI bus discovery; this means\nthat any filesystem mount points specified in the manifest options\ncan be already processed by the time a virtio-9p device is probed\nand a corresponding volume is added; this in turn means that the\n`volume_add()` function called by `v9p_dev_attach()` can trigger a\ndirect call to `v9p_fs_init()`.\nThe `v9p_fs_init()` function uses the `general` field of the\n`virtio_9p` struct, which in the current code is initialized after\ncalling the `volume_add()` function; this causes `v9p_fs_init()`\nto access an uninitialized pointer, leading to an unhandled page\nfault. The same issue applies to the `backed` field of the struct.\nThis change fixes the above issue by moving the initialization of\nthe struct fields before the call to `volume_add()`. In addition,\nthe unused `dev` field is being removed, and setting the DRIVER_OK\nflag in the device status field is being moved before the call to\n`volume_add()` (according to the virtio specs, a driver must not\nsend any buffer available notifications to the device before\nsetting DRIVER_OK).","shortMessageHtmlLink":"Virtio-9P device attach: fix initialization of virtio_9p struct"}},{"before":"c2e728d02fa6ee196edf87c561aa6d480d1738c3","after":null,"ref":"refs/heads/feature/strace","pushedAt":"2024-06-15T07:06:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"}},{"before":"ca4a3cb1fb4fb7f3ce4f78fcc17c2dab82b87ad2","after":"c2e728d02fa6ee196edf87c561aa6d480d1738c3","ref":"refs/heads/master","pushedAt":"2024-06-15T07:06:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Klibs: add strace\n\nThis change adds a new \"strace\" klib which implements the main\nfunctionality of the Linux strace tool, i.e. can output records\nfor each syscall invoked by the user program, and can calculate\nrelevant statistics such as number of occurrences and execution\ntime.\nMost of the `thread_log()` macro calls in the Unix code in the\nkernel are being removed because they are redundant with the\ncorresponding strace output records; likewise, the code that\nimplements collection and reporting of syscall statistics is being\nmoved from the core syscall code to the strace klib. These changes,\ntogether with the removal of several related variables and struct\nfields, bring a reduction of the kernel binary size by 2.5%.\nThe manifest options that are used to confgure syscall tracing and\nstatistics collection (namely, `debugsyscalls`, `notrace`,\n`tracelist`, and `syscall_summary`) remain the same, but are now\nacted upon by the strace klib instead of the main kernel, thus they\ntake effect only if the strace klib is included in an image.\nThe `trace` manifest option is still handled in the main kernel\ncode, but now it only controls tracing of kernel internals.","shortMessageHtmlLink":"Klibs: add strace"}},{"before":"355607a69a8289388c2d9274a3b2b0970e5e1947","after":"c2e728d02fa6ee196edf87c561aa6d480d1738c3","ref":"refs/heads/feature/strace","pushedAt":"2024-06-15T06:18:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Klibs: add strace\n\nThis change adds a new \"strace\" klib which implements the main\nfunctionality of the Linux strace tool, i.e. can output records\nfor each syscall invoked by the user program, and can calculate\nrelevant statistics such as number of occurrences and execution\ntime.\nMost of the `thread_log()` macro calls in the Unix code in the\nkernel are being removed because they are redundant with the\ncorresponding strace output records; likewise, the code that\nimplements collection and reporting of syscall statistics is being\nmoved from the core syscall code to the strace klib. These changes,\ntogether with the removal of several related variables and struct\nfields, bring a reduction of the kernel binary size by 2.5%.\nThe manifest options that are used to confgure syscall tracing and\nstatistics collection (namely, `debugsyscalls`, `notrace`,\n`tracelist`, and `syscall_summary`) remain the same, but are now\nacted upon by the strace klib instead of the main kernel, thus they\ntake effect only if the strace klib is included in an image.\nThe `trace` manifest option is still handled in the main kernel\ncode, but now it only controls tracing of kernel internals.","shortMessageHtmlLink":"Klibs: add strace"}},{"before":"ca4a3cb1fb4fb7f3ce4f78fcc17c2dab82b87ad2","after":null,"ref":"refs/heads/feature/cpu-affinity","pushedAt":"2024-06-13T15:55:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"}},{"before":"033a1ed3a12c1f9d51a5fbd7d2831c60036f9db9","after":"ca4a3cb1fb4fb7f3ce4f78fcc17c2dab82b87ad2","ref":"refs/heads/master","pushedAt":"2024-06-13T15:55:07.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: execute runtime tests on 2-vCPU instances\n\nThis change amends the CircleCI configuration so that automated\ntests are run on 2-vCPU instances, in order to increase test\ncoverage of SMP-related kernel code.\nThe platform-specific Makefiles now support specifying a vCPU\ncount (via the `VCPUS` variable) in the command line when running a\ntest program; example command line to run the thread_test program\non a 2-vCPU instance: `make VCPUS=2 TARGET=thread_test run`","shortMessageHtmlLink":"CI: execute runtime tests on 2-vCPU instances"}},{"before":"5779988b058f7bd4885de58830d48f843d36dcd7","after":"ca4a3cb1fb4fb7f3ce4f78fcc17c2dab82b87ad2","ref":"refs/heads/feature/cpu-affinity","pushedAt":"2024-06-13T15:31:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: execute runtime tests on 2-vCPU instances\n\nThis change amends the CircleCI configuration so that automated\ntests are run on 2-vCPU instances, in order to increase test\ncoverage of SMP-related kernel code.\nThe platform-specific Makefiles now support specifying a vCPU\ncount (via the `VCPUS` variable) in the command line when running a\ntest program; example command line to run the thread_test program\non a 2-vCPU instance: `make VCPUS=2 TARGET=thread_test run`","shortMessageHtmlLink":"CI: execute runtime tests on 2-vCPU instances"}},{"before":"8d7b5d57f760ba65b252fd7a1ec847aed7c0a23f","after":"355607a69a8289388c2d9274a3b2b0970e5e1947","ref":"refs/heads/feature/strace","pushedAt":"2024-06-07T08:16:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Klibs: add strace\n\nThis change adds a new \"strace\" klib which implements the main\nfunctionality of the Linux strace tool, i.e. can output records\nfor each syscall invoked by the user program, and can calculate\nrelevant statistics such as number of occurrences and execution\ntime.\nMost of the `thread_log()` macro calls in the Unix code in the\nkernel are being removed because they are redundant with the\ncorresponding strace output records; likewise, the code that\nimplements collection and reporting of syscall statistics is being\nmoved from the core syscall code to the strace klib. These changes,\ntogether with the removal of several related variables and struct\nfields, bring a reduction of the kernel binary size by 2.5%.\nThe manifest options that are used to confgure syscall tracing and\nstatistics collection (namely, `debugsyscalls`, `notrace`,\n`tracelist`, and `syscall_summary`) remain the same, but are now\nacted upon by the strace klib instead of the main kernel, thus they\ntake effect only if the strace klib is included in an image.\nThe `trace` manifest option is still handled in the main kernel\ncode, but now it only controls tracing of kernel internals.","shortMessageHtmlLink":"Klibs: add strace"}},{"before":"d2278dec8e1986ec4d0b9659d3779bc862aa9d1a","after":"8d7b5d57f760ba65b252fd7a1ec847aed7c0a23f","ref":"refs/heads/feature/strace","pushedAt":"2024-06-07T07:35:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Klibs: add strace\n\nThis change adds a new \"strace\" klib which implements the main\nfunctionality of the Linux strace tool, i.e. can output records\nfor each syscall invoked by the user program, and can calculate\nrelevant statistics such as number of occurrences and execution\ntime.\nMost of the `thread_log()` macro calls in the Unix code in the\nkernel are being removed because they are redundant with the\ncorresponding strace output records; likewise, the code that\nimplements collection and reporting of syscall statistics is being\nmoved from the core syscall code to the strace klib. These changes,\ntogether with the removal of several related variables and struct\nfields, bring a reduction of the kernel binary size by 2.5%.\nThe manifest options that are used to confgure syscall tracing and\nstatistics collection (namely, `debugsyscalls`, `notrace`,\n`tracelist`, and `syscall_summary`) remain the same, but are now\nacted upon by the strace klib instead of the main kernel, thus they\ntake effect only if the strace klib is included in an image.\nThe `trace` manifest option is still handled in the main kernel\ncode, but now it only controls tracing of kernel internals.","shortMessageHtmlLink":"Klibs: add strace"}},{"before":null,"after":"d2278dec8e1986ec4d0b9659d3779bc862aa9d1a","ref":"refs/heads/feature/strace","pushedAt":"2024-06-06T16:17:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"Klibs: add strace\n\nThis change adds a new \"strace\" klib which implements the main\nfunctionality of the Linux strace tool, i.e. can output trace\nrecords for each syscall invoked by the user program, and can\ncalculate relevant statistics such as number of occurrences and\nexecution time.\nMost of the `thread_log()` macro calls in the Unix code in the\nkernel are being removed because they are redundant with the\ncorresponding strace output records; likewise, the code that\nimplements collection and reporting of syscall statistics is being\nmoved from the core syscall code to the strace klib. These changes,\ntogether with the removal of several related variables and struct\nfields, bring a reduction of the kernel binary size by 2.5%.\nThe manifest options that are used to confgure syscall tracing and\nstatistics collection (namely, `debugsyscalls`, `notrace`,\n`tracelist`, and `syscall_summary`) remain the same, but are now\nacted upon by the strace klib instead of the main kernel, thus they\ntake effect only if the strace klib is included in an image.\nThe `trace` manifest option is still handled in the main kernel\ncode, but now it only controls tracing of kernel internals.","shortMessageHtmlLink":"Klibs: add strace"}},{"before":"033a1ed3a12c1f9d51a5fbd7d2831c60036f9db9","after":null,"ref":"refs/heads/feature/file-sealing","pushedAt":"2024-06-06T15:07:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"}},{"before":"a92295e7fe3a2b68c958275e4debd6ff6f6cd10c","after":"033a1ed3a12c1f9d51a5fbd7d2831c60036f9db9","ref":"refs/heads/master","pushedAt":"2024-06-06T15:06:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"memfd_create(): add support for file sealing\n\nThis change enhances the tmpfs implementation so that it supports\nfile sealing, and modifies memfd_create() so that it acts upon the\nMFD_ALLOW_SEALING flag when configuring the initial set of seals\nfor the underlying tmpfs file.\nThe fcntl() syscall now accepts 2 additional commands, needed for\nfile sealing operations: F_ADD_SEALS and F_GET_SEALS.\nThe fcntl runtime test has been amended to exercise this new\nfeature.","shortMessageHtmlLink":"memfd_create(): add support for file sealing"}},{"before":"21610522f4ccfee386f11d630fae54e2f51ca423","after":"5779988b058f7bd4885de58830d48f843d36dcd7","ref":"refs/heads/feature/cpu-affinity","pushedAt":"2024-05-29T16:06:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: execute runtime tests on 2-vCPU instances\n\nThis change amends the CircleCI configuration so that automated\ntests are run on 2-vCPU instances, in order to increase test\ncoverage of SMP-related kernel code.\nThe platform-specific Makefiles now support specifying a vCPU\ncount (via the `VCPUS` variable) in the command line when running a\ntest program; example command line to run the thread_test program\non a 2-vCPU instance: `make VCPUS=2 TARGET=thread_test run`","shortMessageHtmlLink":"CI: execute runtime tests on 2-vCPU instances"}},{"before":"9dec0b472af13549c43f268f7c27d93d37799b33","after":"21610522f4ccfee386f11d630fae54e2f51ca423","ref":"refs/heads/feature/cpu-affinity","pushedAt":"2024-05-29T10:00:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: execute runtime tests on 2-vCPU instances\n\nThis change amends the CircleCI configuration so that automated\ntests are run on 2-vCPU instances, in order to increase test\ncoverage of SMP-related kernel code.\nThe platform-specific Makefiles now support specifying a vCPU\ncount (via the `VCPUS` variable) in the command line when running a\ntest program; example command line to run the thread_test program\non a 2-vCPU instance: `make VCPUS=2 TARGET=thread_test run`","shortMessageHtmlLink":"CI: execute runtime tests on 2-vCPU instances"}},{"before":"717c65118a75b317f4f3fd4eb9c62b6c1cfcf92e","after":"9dec0b472af13549c43f268f7c27d93d37799b33","ref":"refs/heads/feature/cpu-affinity","pushedAt":"2024-05-27T16:59:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: execute runtime tests on 2-vCPU instances\n\nThis change amends the CircleCI configuration so that automated\ntests are run on 2-vCPU instances, in order to increase test\ncoverage of SMP-related kernel code.\nThe platform-specific Makefiles now support specifying a vCPU\ncount (via the `VCPUS` variable) in the command line when running a\ntest program; example command line to run the thread_test program\non a 2-vCPU instance: `make VCPUS=2 TARGET=thread_test run`","shortMessageHtmlLink":"CI: execute runtime tests on 2-vCPU instances"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEc_LxcAA","startCursor":null,"endCursor":null}},"title":"Activity ยท nanovms/nanos"}