{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":652426027,"defaultBranch":"master","name":"tilck","ownerLogin":"0xdeadbad","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-06-12T03:50:09.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/12537125?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1689838656.0","currentOid":""},"activityList":{"items":[{"before":"df8443ee886c81585d54db1767946f9b8fe348ce","after":"2557725d3af35b9496d924cbe6c452f8d4c05ff1","ref":"refs/heads/callbacktest","pushedAt":"2023-10-25T14:58:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Test checking for -ENOENT earlier","shortMessageHtmlLink":"Test checking for -ENOENT earlier"}},{"before":"a759aed700c2464e15591673731ff0c45a7060ed","after":"df8443ee886c81585d54db1767946f9b8fe348ce","ref":"refs/heads/callbacktest","pushedAt":"2023-10-25T13:33:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Skipping exit_callback test when there are no symbols in the kernel","shortMessageHtmlLink":"Skipping exit_callback test when there are no symbols in the kernel"}},{"before":"e9c27da4dd15f5f8a927b11f31484aec3f1429f0","after":"5dd3d973c2acaecdcadaad98f75b39bd370a6beb","ref":"refs/heads/master","pushedAt":"2023-10-25T02:29:30.000Z","pushType":"push","commitsCount":25,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"[64-bit] Allow Tilck to be mapped at a non-linear vaddr\n\nThis is the part of two of commit 29ee48c7f3. Here we completely decouple\nthe default linear mapping of the physical address space from the kernel's\nvaddr of text, data & bss. By default, the 32-bit Tilck kernel will continue\nto be mapped at BASE_VA + KERNEL_PADDR, using the general-purpose linear\nmapping, but when the KRN32_LIN_VADDR option is disabled, the kernel itself\nwill be mapped at a much higher address, near LINEAR_MAPPING_END.\n\nThe reason is the same as 29ee48c7f3: the 64-bit kernel will need to be mapped\nwell outside of the 4 GB limit in order to support more physical memory in the\nlinear mapping. But, doing that while keeping the linear mapping will be\nextremely inefficient because all the major compilers will refuse to compile\nan ELF binary placed at such a high vaddr without using -mcmodel=large. And\nthe problem with that is that -mcmodel=large uses inefficient instructions to\naccess global variables and call functions because it doesn't assume that data\nand text are within 2 GB of any point. It assumes that each variable or function\ncan be *anywhere* in the 64-bit virtual address space, while that is not true.\nIn theory, it's totally possible to patch the compiler and make it use a small\nmemory model at a high address, but why bothering with that? The mainstream\nsolution is simply to place the kernel somewhere within [-2 GB, 0). This allows\nboth using the smaller (and more efficient) memory model and to leave all the\nvirtual space we want for user programs.\n\nThis change makes mapping the kernel at a non-linear vaddr possible, by removing\nall the hard-coded assumptions about kernel's base vaddr being within the\ngeneric linear mapping at BASE_VA. The core idea is to rename KERNEL_BASE_VA\nto BASE_VA by fixing most of the instances to use the new BASE_VA and\nselectively use the new KERNEL_BASE_VA/KERNEL_VADDR when necessary. One kind of\ncases for the new KERNEL_BASE_VA is when we're accessing kernel's symbol table:\nfor that we really do care about kernel's vaddr. Another case is when we use\nthe address of kernel buffers (e.g. kmalloc's first heap, zero_page, kpdir_buf)\nin contexts where later a VA -> PA conversion will occurr because the code works\nmostly with heap-allocated buffers, which are mapped using the linear mapping.\nIn such cases, since the VA does not start at BASE_VA but at KERNEL_BASE_VA,\nthe conversion leads to a wrong PA and that triggers any sort of failures.\nThe correct approach for those special cases is to convert the kernel VA to a\nlinear VA with a double-conversion: kernel symbol VA -> PA -> linear VA.\nTherefore, we'll access our own kernel variables through a different mapping\nbecause it allows the rest of the generic code to work. That requires also\nkeeping a mapping of the kernel in the early paging setup in start.S, in\naddition to the dedicated kernel mapping near LINEAR_MAPPING_END.","shortMessageHtmlLink":"[64-bit] Allow Tilck to be mapped at a non-linear vaddr"}},{"before":"c446211da6aced749c203291984fed9e3f128a51","after":"a759aed700c2464e15591673731ff0c45a7060ed","ref":"refs/heads/callbacktest","pushedAt":"2023-08-05T00:33:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"fix: resetting counter so won't fail on subsequential calls","shortMessageHtmlLink":"fix: resetting counter so won't fail on subsequential calls"}},{"before":"533d50350862645bb0d370099e7699f9abe00e30","after":"c446211da6aced749c203291984fed9e3f128a51","ref":"refs/heads/callbacktest","pushedAt":"2023-08-04T19:19:50.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"fix: calling syscall to check variable and better variable naming","shortMessageHtmlLink":"fix: calling syscall to check variable and better variable naming"}},{"before":"885b34ead6aa8f09f74df8c2e5a6a9201bd7a649","after":"533d50350862645bb0d370099e7699f9abe00e30","ref":"refs/heads/callbacktest","pushedAt":"2023-07-20T07:39:56.137Z","pushType":"push","commitsCount":3,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Merge branch 'vvaltchev:master' into callbacktest","shortMessageHtmlLink":"Merge branch 'vvaltchev:master' into callbacktest"}},{"before":"885b34ead6aa8f09f74df8c2e5a6a9201bd7a649","after":"533d50350862645bb0d370099e7699f9abe00e30","ref":"refs/heads/callbacktest","pushedAt":"2023-07-20T07:39:56.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Merge branch 'vvaltchev:master' into callbacktest","shortMessageHtmlLink":"Merge branch 'vvaltchev:master' into callbacktest"}},{"before":"d8967036829b0151407fd17254a1d3474084cdbb","after":"e9c27da4dd15f5f8a927b11f31484aec3f1429f0","ref":"refs/heads/master","pushedAt":"2023-07-20T07:39:32.765Z","pushType":"push","commitsCount":2,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Allow Tilck to build on Linux-aarch64","shortMessageHtmlLink":"Allow Tilck to build on Linux-aarch64"}},{"before":"d8967036829b0151407fd17254a1d3474084cdbb","after":"e9c27da4dd15f5f8a927b11f31484aec3f1429f0","ref":"refs/heads/master","pushedAt":"2023-07-20T07:39:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"Allow Tilck to build on Linux-aarch64","shortMessageHtmlLink":"Allow Tilck to build on Linux-aarch64"}},{"before":null,"after":"885b34ead6aa8f09f74df8c2e5a6a9201bd7a649","ref":"refs/heads/callbacktest","pushedAt":"2023-07-20T07:37:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"0xdeadbad","name":"Matheus da Silva Garcias","path":"/0xdeadbad","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12537125?s=80&v=4"},"commit":{"message":"[WIP] first test \"prototype\" for tasks exit callbacks","shortMessageHtmlLink":"[WIP] first test \"prototype\" for tasks exit callbacks"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADn5ZgewA","startCursor":null,"endCursor":null}},"title":"Activity ยท 0xdeadbad/tilck"}