/linux-6.6.21/kernel/cgroup/ |
D | legacy_freezer.c | 44 struct freezer { struct 51 static inline struct freezer *css_freezer(struct cgroup_subsys_state *css) in css_freezer() argument 53 return css ? container_of(css, struct freezer, css) : NULL; in css_freezer() 56 static inline struct freezer *task_freezer(struct task_struct *task) in task_freezer() 61 static struct freezer *parent_freezer(struct freezer *freezer) in parent_freezer() argument 63 return css_freezer(freezer->css.parent); in parent_freezer() 95 struct freezer *freezer; in freezer_css_alloc() local 97 freezer = kzalloc(sizeof(struct freezer), GFP_KERNEL); in freezer_css_alloc() 98 if (!freezer) in freezer_css_alloc() 101 return &freezer->css; in freezer_css_alloc() [all …]
|
D | freezer.c | 26 cgrp->freezer.nr_frozen_descendants += desc; in cgroup_propagate_frozen() 29 cgrp->freezer.nr_frozen_descendants == in cgroup_propagate_frozen() 37 cgrp->freezer.nr_frozen_descendants -= desc; in cgroup_propagate_frozen() 64 cgrp->freezer.nr_frozen_tasks == __cgroup_task_count(cgrp); in cgroup_update_frozen() 91 cgrp->freezer.nr_frozen_tasks++; in cgroup_inc_frozen_cnt() 99 cgrp->freezer.nr_frozen_tasks--; in cgroup_dec_frozen_cnt() 100 WARN_ON_ONCE(cgrp->freezer.nr_frozen_tasks < 0); in cgroup_dec_frozen_cnt() 213 if (cgrp->nr_descendants == cgrp->freezer.nr_frozen_descendants) in cgroup_do_freeze() 271 if (cgrp->freezer.freeze == freeze) in cgroup_freeze() 274 cgrp->freezer.freeze = freeze; in cgroup_freeze() [all …]
|
D | Makefile | 2 obj-y := cgroup.o rstat.o namespace.o cgroup-v1.o freezer.o
|
D | cgroup.c | 3897 seq_printf(seq, "%d\n", cgrp->freezer.freeze); in cgroup_freeze_show() 5620 cgrp->freezer.e_freeze = parent->freezer.e_freeze; in cgroup_create() 5621 if (cgrp->freezer.e_freeze) { in cgroup_create() 5644 if (cgrp->freezer.e_freeze) in cgroup_create() 5645 tcgrp->freezer.nr_frozen_descendants++; in cgroup_create() 5926 tcgrp->freezer.nr_frozen_descendants--; in cgroup_destroy_locked()
|
/linux-6.6.21/Documentation/admin-guide/cgroup-v1/ |
D | freezer-subsystem.rst | 5 The cgroup freezer is useful to batch job management system which start 9 whole. The cgroup freezer uses cgroups to describe the set of tasks to 13 The cgroup freezer will also be useful for checkpointing running groups 14 of tasks. The freezer allows the checkpoint code to obtain a consistent 51 In contrast, the cgroup freezer uses the kernel freezer code to 56 The cgroup freezer is hierarchical. Freezing a cgroup freezes all 62 The following cgroupfs files are created by cgroup freezer. 64 * freezer.state: Read-write. 87 * freezer.self_freezing: Read only. 90 This value is 1 iff the last write to freezer.state was "FROZEN". [all …]
|
D | index.rst | 16 freezer-subsystem
|
/linux-6.6.21/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
D | bcmsdh.c | 792 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach() 793 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach() 795 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach() 796 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach() 797 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach() 798 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach() 804 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach() 805 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach() 806 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach() 807 sdiodev->freezer = NULL; in brcmf_sdiod_freezer_detach() [all …]
|
D | sdio.h | 194 struct brcmf_sdiod_freezer *freezer; member
|
/linux-6.6.21/Documentation/power/ |
D | freezing-of-tasks.rst | 31 results in a call to __refrigerator() (defined in kernel/freezer.c), which sets 35 to as 'the freezer' (these functions are defined in kernel/power/process.c, 36 kernel/freezer.c & include/linux/freezer.h). User space processes are generally 40 try_to_freeze() function (defined in include/linux/freezer.h), that checks 46 wait_event_freezable_timeout() macros (defined in include/linux/freezer.h) 61 If a freezable kernel thread fails to call try_to_freeze() after the freezer has 230 consequence, the freezer would not be able to freeze that task, leading to 234 since they ask the freezer to skip freezing this task, since it is anyway
|
D | suspend-and-cpuhotplug.rst | 17 interactions involving the freezer and CPU hotplug and also tries to explain 272 2. If a regular CPU hotplug stress test happens to race with the freezer due 278 * Then freezer gets to work and freezes userspace. 282 * Now the freezer continues and tries to freeze the remaining tasks. But 283 due to this wait mentioned above, the freezer won't be able to freeze
|
D | basic-pm-debugging.rst | 52 freezer 105 should try the test modes starting from "freezer", through "devices", "platform" 109 If the "freezer" test fails, there is a task that cannot be frozen (in that case 112 that there is a problem with the tasks freezer subsystem that should be 224 Namely, after writing "freezer", "devices", "platform", "processors", or "core"
|
/linux-6.6.21/include/linux/ |
D | cgroup_subsys.h | 37 SUBSYS(freezer)
|
D | cgroup-defs.h | 522 struct cgroup_freezer_state freezer; member
|
/linux-6.6.21/ |
D | Kconfig | 12 source "kernel/Kconfig.freezer"
|
D | MAINTAINERS | 8477 F: include/linux/freezer.h 8478 F: kernel/freezer.c 9239 F: include/linux/freezer.h 20721 F: include/linux/freezer.h
|
/linux-6.6.21/kernel/ |
D | Makefile | 56 obj-$(CONFIG_FREEZER) += freezer.o
|
/linux-6.6.21/kernel/power/ |
D | Kconfig | 12 bool "Enable freezer for suspend to RAM/standby" \ 17 This allows you to turn off the freezer for suspend. If this is
|
/linux-6.6.21/Documentation/admin-guide/ |
D | dynamic-debug-howto.rst | 147 file kernel/freezer.c # ie column 1 of control file
|
D | cgroup-v2.rst | 2754 type controllers such as freezer which can be useful in all
|