{"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:1726672804.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"974607f2e550d22bbec955de76a204d58ce61848","ref":"refs/heads/fix/aws-xen","pushedAt":"2024-09-18T15:20:04.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":"x86 bootloader: keep 8259 PIC enabled when reading from disk\n\nFollowing a recent update of the hypervisor and/or the BIOS\nfirmware on AWS Xen-based instances (e.g. t2 instances), the BIOS\nnever returns from the INT 13H routine that the stage1 bootloader\nuses to read stage2 code from disk. This prevents the kernel from\nbooting on those instance types.\nThis change fixes the above issue by disabling the 8259 PIC only\nafter reading stage2 code from disk. This allows the BIOS firmware\nto work properly when executing the INT 13H routine, and also\nallows this routine to be executed more than once. Therefore, the\nlimitation of 64 kB on stage2 code size is being lifted, since a\nlarger stage2 binary (which requires more than one INT 13H call in\norder to be read from disk) is now properly handled on AWS\ninstances.","shortMessageHtmlLink":"x86 bootloader: keep 8259 PIC enabled when reading from disk"}},{"before":"d9dc4e05ad05bbdf6097dbebd6d950b18b575a3c","after":null,"ref":"refs/heads/feature/vmap-fault","pushedAt":"2024-09-16T13:10:10.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":"b55246dba8e184d6c385c02baad5ab7aa78b96c7","after":"d9dc4e05ad05bbdf6097dbebd6d950b18b575a3c","ref":"refs/heads/master","pushedAt":"2024-09-16T13:10:02.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":"Page faults: add support for custom fault handlers\n\nThis allows custom mmap() implementations for specific file\ndescriptors to handle page faults on mmap()ed memory. This feature\nis used by the Nvidia GPU klib.\nThe new_pending_fault_locked() function is no longer static so that\nit can be called from an arbitrary fault handler when a fault\ncannot be resolved synchronously.","shortMessageHtmlLink":"Page faults: add support for custom fault handlers"}},{"before":"d942aea6c83e275c79f71bb9a94b90172bf81e94","after":"d9dc4e05ad05bbdf6097dbebd6d950b18b575a3c","ref":"refs/heads/feature/vmap-fault","pushedAt":"2024-09-13T15:20:01.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 faults: add support for custom fault handlers\n\nThis allows custom mmap() implementations for specific file\ndescriptors to handle page faults on mmap()ed memory. This feature\nis used by the Nvidia GPU klib.\nThe new_pending_fault_locked() function is no longer static so that\nit can be called from an arbitrary fault handler when a fault\ncannot be resolved synchronously.","shortMessageHtmlLink":"Page faults: add support for custom fault handlers"}},{"before":"b55246dba8e184d6c385c02baad5ab7aa78b96c7","after":null,"ref":"refs/heads/feature/statx","pushedAt":"2024-09-13T15:14:51.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":"acc46d253895927984d81a7e550b35f7a60b90ed","after":"b55246dba8e184d6c385c02baad5ab7aa78b96c7","ref":"refs/heads/master","pushedAt":"2024-09-13T15:14:45.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":"Syscalls: add statx(2) implementation\n\nSpecific support for this syscall is also being added to the strace\nklib.","shortMessageHtmlLink":"Syscalls: add statx(2) implementation"}},{"before":"c4f3abdb04872bd07149a683a45a0c2be8d7d14a","after":"b55246dba8e184d6c385c02baad5ab7aa78b96c7","ref":"refs/heads/feature/statx","pushedAt":"2024-09-13T14:57:31.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":"Syscalls: add statx(2) implementation\n\nSpecific support for this syscall is also being added to the strace\nklib.","shortMessageHtmlLink":"Syscalls: add statx(2) implementation"}},{"before":"acc46d253895927984d81a7e550b35f7a60b90ed","after":null,"ref":"refs/heads/fix/tun-close","pushedAt":"2024-09-13T14:55:22.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":"95bdb083aced61ff523157a18d21e205c5cbd0a8","after":"acc46d253895927984d81a7e550b35f7a60b90ed","ref":"refs/heads/master","pushedAt":"2024-09-13T14:55:16.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":"tun_close(): properly update `next_tx` file descriptor reference\n\nWhen a tun file descriptor is closed, and there are no other file\ndescriptors associated to the tun device, the `next_tx` field of\nthe tun struct should be cleared; in addition, the network\ninterface output function should check if the `next_tx` field\npoints to a valid file descriptor.\nThis change fixes an unhandled fault that occurs when closing a\nfile descriptor on a tun device that has open TCP connections.\nCloses #2061.","shortMessageHtmlLink":"tun_close(): properly update next_tx file descriptor reference"}},{"before":null,"after":"acc46d253895927984d81a7e550b35f7a60b90ed","ref":"refs/heads/fix/tun-close","pushedAt":"2024-09-12T07:33:50.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":"tun_close(): properly update `next_tx` file descriptor reference\n\nWhen a tun file descriptor is closed, and there are no other file\ndescriptors associated to the tun device, the `next_tx` field of\nthe tun struct should be cleared; in addition, the network\ninterface output function should check if the `next_tx` field\npoints to a valid file descriptor.\nThis change fixes an unhandled fault that occurs when closing a\nfile descriptor on a tun device that has open TCP connections.\nCloses #2061.","shortMessageHtmlLink":"tun_close(): properly update next_tx file descriptor reference"}},{"before":"95bdb083aced61ff523157a18d21e205c5cbd0a8","after":null,"ref":"refs/heads/feature/clang","pushedAt":"2024-09-12T06:59:34.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":"7430b4d359b9c09afa80ee9925ec012f6f9c4d9a","after":"95bdb083aced61ff523157a18d21e205c5cbd0a8","ref":"refs/heads/master","pushedAt":"2024-09-12T06:59:24.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"CI: add GitHub action for building the kernel on MacOS\n\nThis provides CI test coverage for building the kernel with the\nclang compiler for the x86 and ARM architectures.","shortMessageHtmlLink":"CI: add GitHub action for building the kernel on MacOS"}},{"before":"16f8c168481d5327f221dc3464fd92c10eb98580","after":"95bdb083aced61ff523157a18d21e205c5cbd0a8","ref":"refs/heads/feature/clang","pushedAt":"2024-09-12T06:43: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":"CI: add GitHub action for building the kernel on MacOS\n\nThis provides CI test coverage for building the kernel with the\nclang compiler for the x86 and ARM architectures.","shortMessageHtmlLink":"CI: add GitHub action for building the kernel on MacOS"}},{"before":"7430b4d359b9c09afa80ee9925ec012f6f9c4d9a","after":null,"ref":"refs/heads/feature/map_growsdown","pushedAt":"2024-09-11T16:57:31.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":"6bf9e449aea8fa6add857b403175d9a64125cfa6","after":"7430b4d359b9c09afa80ee9925ec012f6f9c4d9a","ref":"refs/heads/master","pushedAt":"2024-09-11T16:57:17.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"francescolavra","name":"Francesco Lavra","path":"/francescolavra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10710577?s=80&v=4"},"commit":{"message":"mmap(2): add support for MAP_GROWSDOWN flag\n\nA mapping with this flag can be expanded downwards dynamically (up\nto the PROCESS_STACK_SIZE limit) by \"touching\" addresses lower than\nthe base of the mapping. As with the main process stack mapping, a\nguard gap is kept between a MAP_GROWSDOWN mapping and any adjacent\nmappings.","shortMessageHtmlLink":"mmap(2): add support for MAP_GROWSDOWN flag"}},{"before":"911c6952fa6b8f6e0495fe42f20f5db530535976","after":"d942aea6c83e275c79f71bb9a94b90172bf81e94","ref":"refs/heads/feature/vmap-fault","pushedAt":"2024-09-11T16:41:04.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 faults: add support for custom fault handlers\n\nThis allows custom mmap() implementations for specific file\ndescriptors to handle page faults on mmap()ed memory. This feature\nis used by the Nvidia GPU klib.\nThe new_pending_fault_locked() function is no longer static so that\nit can be called from an arbitrary fault handler when the fault\ncannot be resolved synchronously.","shortMessageHtmlLink":"Page faults: add support for custom fault handlers"}},{"before":"7083ded72b5b917efe0b734e2704e74a9b45c145","after":"911c6952fa6b8f6e0495fe42f20f5db530535976","ref":"refs/heads/feature/vmap-fault","pushedAt":"2024-09-10T09:40:10.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":"wip","shortMessageHtmlLink":"wip"}},{"before":null,"after":"7083ded72b5b917efe0b734e2704e74a9b45c145","ref":"refs/heads/feature/vmap-fault","pushedAt":"2024-09-09T13:57:35.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":"wip","shortMessageHtmlLink":"wip"}},{"before":"6c046fcceba9b49f95b8375e207fd4c06c49d374","after":"c4f3abdb04872bd07149a683a45a0c2be8d7d14a","ref":"refs/heads/feature/statx","pushedAt":"2024-09-05T16:30:36.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":"Syscalls: add statx(2) implementation\n\nSpecific support for this syscall is also being added to the strace\nklib.","shortMessageHtmlLink":"Syscalls: add statx(2) implementation"}},{"before":null,"after":"6c046fcceba9b49f95b8375e207fd4c06c49d374","ref":"refs/heads/feature/statx","pushedAt":"2024-09-05T16:05:46.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":"Syscalls: add statx(2) implementation\n\nSpecific support for this syscall is also being added to the strace\nklib.","shortMessageHtmlLink":"Syscalls: add statx(2) implementation"}},{"before":"7ca9b158a4eb41d761e798e94ba3bf2b43847ed4","after":"7430b4d359b9c09afa80ee9925ec012f6f9c4d9a","ref":"refs/heads/feature/map_growsdown","pushedAt":"2024-09-04T09:26:56.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":"mmap(2): add support for MAP_GROWSDOWN flag\n\nA mapping with this flag can be expanded downwards dynamically (up\nto the PROCESS_STACK_SIZE limit) by \"touching\" addresses lower than\nthe base of the mapping. As with the main process stack mapping, a\nguard gap is kept between a MAP_GROWSDOWN mapping and any adjacent\nmappings.","shortMessageHtmlLink":"mmap(2): add support for MAP_GROWSDOWN flag"}},{"before":"04f76517dee1deffba81335f4de3c7a905378b05","after":"7ca9b158a4eb41d761e798e94ba3bf2b43847ed4","ref":"refs/heads/feature/map_growsdown","pushedAt":"2024-09-04T09:11:00.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":"mmap(2): add support for MAP_GROWSDOWN flag\n\nA mapping with this flag can be expanded downwards dynamically (up\nto the PROCESS_STACK_SIZE limit) by \"touching\" addresses lower than\nthe base of the mapping. As with the main process stack mapping, a\nguard gap is kept between a MAP_GROWSDOWN mapping and any adjacent\nmappings.","shortMessageHtmlLink":"mmap(2): add support for MAP_GROWSDOWN flag"}},{"before":null,"after":"04f76517dee1deffba81335f4de3c7a905378b05","ref":"refs/heads/feature/map_growsdown","pushedAt":"2024-09-04T08:16:42.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":"mmap(2): add support for MAP_GROWSDOWN flag\n\nA mapping with this flag can be expanded downwards dynamically (up\nto the PROCESS_STACK_SIZE limit) by \"touching\" addresses lower than\nthe base of the mapping. As with the main process stack mapping, a\nguard gap is kept between a MAP_GROWSDOWN mapping and any adjacent\nmappings.","shortMessageHtmlLink":"mmap(2): add support for MAP_GROWSDOWN flag"}},{"before":"6bf9e449aea8fa6add857b403175d9a64125cfa6","after":null,"ref":"refs/heads/fix/runloop","pushedAt":"2024-09-04T07:34:35.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":"0966f0b4f5bf950a6e9e6b5739a83f433f958a73","after":"6bf9e449aea8fa6add857b403175d9a64125cfa6","ref":"refs/heads/master","pushedAt":"2024-09-04T07:34:22.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":"Runloop: fix check for unset CPU timer when running a user thread\n\nBefore running a user thread, if the local timer of the current CPU\nis not armed (because either the timer interrupt already fired\nsince doing the last timer update, or the timer has never been\narmed), the `timeout` variable in the current code in\nrunloop_internal() is negative, thus the\n`timeout > (s64)max_timeout` condition is always false; this\nresults in the CPU timer not being armed and the user thread\npotentially running indefinitely.\nThis issue causes the umcg runtime test to hang if run on an\ninstance with more than 4 vCPUs.\nThis change fixes the above issue by using the `last_timer_update`\nfield of the cpuinfo struct to check the timestamp at which the\nnext timer interrupt will fire (with a 0 value in this field\nindicating that the timer is not armed). In addition, unnecessary\nupdates of the CPU timer are avoided by removing the call to\n`set_platform_timer` from `update_timer` (because the timer may\nhave to be re-configured before kernel_sleep() is finally called),\nand checking whether the current timer setting is different from\nthe next timer timestamp before updating the timer setting.\nThe `empty` field of struct timerqueue is being removed since it is\nno longer used.","shortMessageHtmlLink":"Runloop: fix check for unset CPU timer when running a user thread"}},{"before":"561bb65a7b78f30138afb88c90704961d9b80714","after":"6bf9e449aea8fa6add857b403175d9a64125cfa6","ref":"refs/heads/fix/runloop","pushedAt":"2024-09-04T07:13:46.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":"Runloop: fix check for unset CPU timer when running a user thread\n\nBefore running a user thread, if the local timer of the current CPU\nis not armed (because either the timer interrupt already fired\nsince doing the last timer update, or the timer has never been\narmed), the `timeout` variable in the current code in\nrunloop_internal() is negative, thus the\n`timeout > (s64)max_timeout` condition is always false; this\nresults in the CPU timer not being armed and the user thread\npotentially running indefinitely.\nThis issue causes the umcg runtime test to hang if run on an\ninstance with more than 4 vCPUs.\nThis change fixes the above issue by using the `last_timer_update`\nfield of the cpuinfo struct to check the timestamp at which the\nnext timer interrupt will fire (with a 0 value in this field\nindicating that the timer is not armed). In addition, unnecessary\nupdates of the CPU timer are avoided by removing the call to\n`set_platform_timer` from `update_timer` (because the timer may\nhave to be re-configured before kernel_sleep() is finally called),\nand checking whether the current timer setting is different from\nthe next timer timestamp before updating the timer setting.\nThe `empty` field of struct timerqueue is being removed since it is\nno longer used.","shortMessageHtmlLink":"Runloop: fix check for unset CPU timer when running a user thread"}},{"before":"0966f0b4f5bf950a6e9e6b5739a83f433f958a73","after":null,"ref":"refs/heads/fix/tfs-extend","pushedAt":"2024-09-04T07:11:39.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":"721d2b972da63e4dbc86c8ac5c6382e561cf71cc","after":"0966f0b4f5bf950a6e9e6b5739a83f433f958a73","ref":"refs/heads/master","pushedAt":"2024-09-04T07:11:31.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":"TFS extent extension: fix handling of exhausted disk space\n\nIf there is not enough storage space to extend a TFS file extent to\nthe requested size, the extent size should be adjusted to match the\navailable space. The existing code is updating the extent size as\nif the storage space limit had not been reached; this can cause the\nTFS driver to issue disk I/O requests with invalid block ranges,\nwhich results in EIO syscall errors.","shortMessageHtmlLink":"TFS extent extension: fix handling of exhausted disk space"}},{"before":"0b5568e3fb133c9f2a3f4787139a58f2d593d714","after":"16f8c168481d5327f221dc3464fd92c10eb98580","ref":"refs/heads/feature/clang","pushedAt":"2024-08-30T18:50: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":"CI: add GitHub action for building the kernel on MacOS\n\nThis provides CI test coverage for building the kernel with the\nclang compiler for the x86 and ARM architectures.","shortMessageHtmlLink":"CI: add GitHub action for building the kernel on MacOS"}},{"before":"ebe4e2ca200041d01e10b64c5cdf8230b2a0a737","after":"0b5568e3fb133c9f2a3f4787139a58f2d593d714","ref":"refs/heads/feature/clang","pushedAt":"2024-08-30T18:22:49.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: add GitHub action for building the kernel on MacOS\n\nThis provides CI test coverage for building the kernel with the\nclang compiler for the x86 and ARM architectures.","shortMessageHtmlLink":"CI: add GitHub action for building the kernel on MacOS"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEudrnTwA","startCursor":null,"endCursor":null}},"title":"Activity ยท nanovms/nanos"}