{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":619821441,"defaultBranch":"master","name":"linux","ownerLogin":"randombtree","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-03-27T13:49:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11191691?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1681893889.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"41d3250ca4acd21652647ee59ee44045dd5912c9","ref":"refs/heads/idle_timekeeping","pushedAt":"2023-04-19T08:44:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"tick/sched: Separate timer updating and timekeeping CPU.\n\nThe timer updating CPU (tick_do_timer_cpu) is an awake CPU responsible for\nupdating the time. This abstraction, however, has been used to select witch CPU\nto sleep a shorter while to guarantee a proper time keeping advancement\ne.g. avoiding time keeping counter wrap-overs. In a mostly idle system, where\nat most one CPU is awake, the awake CPU will become the next time keeping CPU\neven though the previously awake CPU is sleeping a shorter while. This\nbasically translates into all idle CPUs being ultimately selected as time\nkeeping CPUs, thus not allowed to sleep the full time otherwise allowed by\ntimer deadlines.\n\nThis patch introduces tick_timekeeping_cpu, which is hold at most by one CPU.\nThe time keeeping CPU will wake up regularly as dictated by\ntimekeeping_max_deferment() allowing other CPUs to sleep longer. The\ntimekeeping CPU will also change once in a while, gravitating towards more\n\"active\" CPUs, again, allowing longer CPU sleeps in general.\n\nSigned-off-by: Roger Blomgren ","shortMessageHtmlLink":"tick/sched: Separate timer updating and timekeeping CPU."}},{"before":"b70a37ac68281c500cc31330a7b341cd6d71f823","after":"04b9f81a407b8bc6c506cbfac164ae9308def3ce","ref":"refs/heads/v6.2-timerslack+cgroups","pushedAt":"2023-04-11T09:23:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"cgroup: introduce per cgroup timer slack.\n\nCgroups can now have different timer slack values (cgroup.timer_slack_ns). The\ntimer slack is inherited down to the descendant cgroups, that can override the\ninherited value for their own subtree of descendants, if necessary. A process\nthat hasn't changed its timer slack value through the appropriate prctl, will\nthe cgroup provided one which can be either shorter or longer than the default\n50 us timer slack previously used in Linux. The 50 us timer slack will still\nremain as the default timer slack if the cgroup values are left untouched.\n\nExample inheritance in a cg-hierarchy that has a new timer slack set as R on\nthe root cgroup, in addition to N and O set in the corresponding descendants:\n\n {R,s}\n / \\\n {N,r} {_,R}\n / \\\n {_,N} {O,r}\n | |\n {_,N} {_,O}\n\nwhere {X,y} denotes the timer slack (X) and the inherited slack (y). The\neffective timer slack is in upper case, e.g. {_,Y} means the default inherited\ntimer slack (Y) is used. Underscore (_) denotes a default timer slack, in which\ncase the inherited timer slack is used.\n\nSigned-off-by: Roger Blomgren ","shortMessageHtmlLink":"cgroup: introduce per cgroup timer slack."}},{"before":"e4adc33ee72f84cdd373a4f66afdfa1b0a3d2eba","after":"b70a37ac68281c500cc31330a7b341cd6d71f823","ref":"refs/heads/v6.2-timerslack+cgroups","pushedAt":"2023-04-06T13:04:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"hrtimer, sched/idle: Run soft-expired hrtimers opportunistically before idle.\n\nWith hrtimer storing timers in a soft-expires order, it's cheap to look ahead\nif there are soft-expired timers that could be run before idling the CPU. This\nCOULD result in power saving when using large-enough timer slack values in user\nspace.\n\nSigned-off-by: Roger Blomgren ","shortMessageHtmlLink":"hrtimer, sched/idle: Run soft-expired hrtimers opportunistically befo…"}},{"before":"65887eeb3ea2fb82c38e1b6a328fa51370c6174c","after":null,"ref":"refs/heads/v6.2-timerslack+proc","pushedAt":"2023-04-04T15:42:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"}},{"before":null,"after":"e4adc33ee72f84cdd373a4f66afdfa1b0a3d2eba","ref":"refs/heads/v6.2-timerslack+cgroups","pushedAt":"2023-04-04T15:41:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"WIP! cgroup: introduce per cgroup timer slack.\n\nCgroups can now have different timer slack values (cgroup.timer_slack_ns). The\ntimer slack is inherited down to the descendant cgroups, that can override the\ninherited value for their own subtree of descendants, if necessary. A process\nthat hasn't changed its timer slack value through the appropriate prctl, will\nthe cgroup provided one which can be either shorter or longer than the default\n50 us timer slack previously used in Linux. The 50 us timer slack will still\nremain as the default timer slack if the cgroup values are left untouched.\n\nExample inheritance in a cg-hierarchy that has a new timer slack set as R on\nthe root cgroup, in addition to N and O set in the corresponding descendants:\n\n {R,s}\n / \\\n {N,r} {_,R}\n / \\\n {_,N} {O,r}\n | |\n {_,N} {_,O}\n\nwhere {X,y} denotes the timer slack (X) and the inherited slack (y). The\neffective timer slack is in upper case, e.g. {_,Y} means the default inherited\ntimer slack (Y) is used. Underscore (_) denotes a default timer slack, in which\ncase the inherited timer slack is used.\n\nTODO:\n- Split out the css selector changes to own patch\n- Double and triple check the locking rules, now the locking\n is probably wrong!\n- Test it extensively :)\n\nHas survived light testing in a VM so far!\n\nNOT-REALLY-Signed-off-by: Roger Blomgren ","shortMessageHtmlLink":"WIP! cgroup: introduce per cgroup timer slack."}},{"before":"2e091df5c127df891da57a2574ab632083d61f4c","after":"65887eeb3ea2fb82c38e1b6a328fa51370c6174c","ref":"refs/heads/v6.2-timerslack+proc","pushedAt":"2023-04-04T12:40:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"WIP! cgroup: introduce per cgroup timer slack.\n\nCgroups can now have different timer slack values. The timer slack is inherited\ndown to the descendants that can override the inherited value for their own\nsubtree of descenants.\n\ne.g. a cg-hierarchy with depth=4\n\n {R,s}\n / \\\n {N,r} {_, R}\n / \\\n {_,N} {O, r}\n | |\n {_,N} {_, O}\n\nwhere {X, y} denotes the set timer slack (X) and the default inherited slack y.\nThe used timer slack is upper case, e.g. {_, Y} means the default inherited\ntimer slack is used.\nUnderscore (_) denotes an unset timer slack.\n\nTODO:\n- Split out the css selector changes to own patch\n- Double and triple check the locking rules, now the locking\n is probably wrong!\n- Test it extensively :)\n\nNOT-REALLY-Signed-off-by: Roger Blomgren ","shortMessageHtmlLink":"WIP! cgroup: introduce per cgroup timer slack."}},{"before":null,"after":"2e091df5c127df891da57a2574ab632083d61f4c","ref":"refs/heads/v6.2-timerslack+proc","pushedAt":"2023-04-04T11:10:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"WIP! cgroup: introduce per cgroup timer slack.\n\nCgroups can now have different timer slack values. The timer slack is inherited\ndown to the descendants that can override the inherited value for their own\nsubtree of descenants.\n\ne.g. a cg-hierarchy with depth=4\n\n {R,s}\n / \\\n {N,r} {_, R}\n / \\\n {_,N} {O, r}\n | |\n {_,N} {_, O}\n\nwhere {X, y} denotes the set timer slack (X) and the default inherited slack y.\nThe used timer slack is upper case, e.g. {_, Y} means the default inherited\ntimer slack is used.\nUnderscore (_) denotes an unset timer slack.\n\nTODO:\n- Split out the css selector changes to own patch\n- Double and triple check the locking rules, now the locking\n is probably wrong!\n- Wire the timer slack into sched.h to be used when using\n cgroups.\n\nNOT-REALLY-Signed-off-by: Roger Blomgren ","shortMessageHtmlLink":"WIP! cgroup: introduce per cgroup timer slack."}},{"before":"197b6b60ae7bc51dd0814953c562833143b292aa","after":"3a93e40326c8f470e71d20b4c42d36767450f38f","ref":"refs/heads/master","pushedAt":"2023-03-28T13:00:30.379Z","pushType":"push","commitsCount":25,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull kvm fixes from Paolo Bonzini:\n \"RISC-V:\n\n - Fix VM hang in case of timer delta being zero\n\n ARM:\n\n - MMU fixes:\n\n - Read the MMU notifier seq before dropping the mmap lock to guard\n against reading a potentially stale VMA\n\n - Disable interrupts when walking user page tables to protect\n against the page table being freed\n\n - Read the MTE permissions for the VMA within the mmap lock\n critical section, avoiding the use of a potentally stale VMA\n pointer\n\n - vPMU fixes:\n\n - Return the sum of the current perf event value and PMC snapshot\n for reads from userspace\n\n - Don't save the value of guest writes to PMCR_EL0.{C,P}, which\n could otherwise lead to userspace erroneously resetting the vPMU\n during VM save/restore\"\n\n* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:\n riscv/kvm: Fix VM hang in case of timer delta being zero.\n KVM: arm64: Check for kvm_vma_mte_allowed in the critical section\n KVM: arm64: Disable interrupts while walking userspace PTs\n KVM: arm64: Retry fault if vma_lookup() results become invalid\n KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU\n KVM: arm64: PMU: Fix GET_ONE_REG for vPMC regs to return the current value","shortMessageHtmlLink":"Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm"}},{"before":null,"after":"5b97b2819617c48e9d5662d37936c94b4efa0cdc","ref":"refs/heads/v6.2-timerslack","pushedAt":"2023-03-28T12:58:29.364Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"randombtree","name":"Roger Blomgren","path":"/randombtree","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11191691?s=80&v=4"},"commit":{"message":"hrtimer: Greedy algorithm for hrtimer expiry time.\n\nPreviously, hrtimers mostly expire at timeout + slack, as the rbtree is sorted\non that value. Now, keep the hrtimer rbtree sorted on the \"soft\" expiry time,\ni.e. without the slack. The optimal timeout value for the rbtree is kept as an\naugmented value, thus allowing an idle system to still wait for a timer\nup until timeout + slack.\n\nThis patch will make the timer slack (at large values) more useful as timer\ntimeouts can truly be merged to happen at the same timer interrupt.\n\nThis work is based on patches from Venkatesh Pallipadi, albeit heavily modified.\n\nOriginally-by: Venkatesh Pallipadi https://lkml.org/lkml/2011/9/23/261\n\nSigned-off-by: Roger Blomgren ","shortMessageHtmlLink":"hrtimer: Greedy algorithm for hrtimer expiry time."}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADG9PgMQA","startCursor":null,"endCursor":null}},"title":"Activity · randombtree/linux"}