This is an alternative to another series[1]. The primary purpose of this series for v4.4-rt is to resolve problem that WARNING in unpin_current_cpu() happens repeatedly while kernel is booting. Please see commit message of the last patch (17/17) for more details about the problem and how it's resolved. This series consists of the following parts: 1-16: A patch series backported from mainline[2]. Its original purpose is to enable earlier might_sleep() and smp_processor_id(), but another role here is to introduces SYSTEM_SCHEDULING for 17. 17: A fix for unpin_current_cpu() WARNING picked up from changes in v4.14-rt, which requires SYSTEM_SCHEDULING by the series above. The commits from the backported series below are adjusted to v4.4-rt. See comments around "Conflicts" in each commit for details. ef284f5c Adjusted to handle 82611c14 not in v4.4. b903dfb2 Ignored. The target code is added by d7b05582, but it's for deferred IOMMU support which should not be backported. ff48cd26 Adjusted to handle cf775444 not in v4.4. As v4.4-rt have been EOL already, it's not expected that this series is applied to the branch anymore. On the other hand, the Civil Infrastructure Platform Project (CIP) has been maintaining its 4.4 SLTS RT kernel[3][4] based on v4.4-rt, and needs to fix the problem above by this series. It is much appreciated if RT experts could take a look at the series and give feedbacks, especially about whether changes by the backported series such as adding a new system_state are acceptable in regular RT kernel maintenance so far and in the future (i.e. mainline based). [1] https://lore.kernel.org/linux-rt-devel/Z6Nf32YB%2FJ0LMSPw@xxxxxxxxxx/T/ [2] https://lore.kernel.org/all/20170516184231.564888231@xxxxxxxxxxxxx/T/ [3] https://wiki.linuxfoundation.org/civilinfrastructureplatform/start#kernel_maintainership [4] https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git/log/?h=linux-4.4.y-cip-rt Kazuhiro Hayashi (1): mm: slub: allocate_slab() enables IRQ right after scheduler starts Thomas Gleixner (16): init: Pin init task to the boot CPU, initially arm: Adjust system_state check arm64: Adjust system_state check x86/smp: Adjust system_state check metag: Adjust system_state check powerpc: Adjust system_state check ACPI: Adjust system_state check mm: Adjust system_state check cpufreq/pasemi: Adjust system_state check iommu/vt-d: Adjust system_state checks async: Adjust system_state checks extable: Adjust system_state checks printk: Adjust system_state checks mm/vmscan: Adjust system_state checks init: Introduce SYSTEM_SCHEDULING state sched/core: Enable might_sleep() and smp_processor_id() checks early arch/arm/kernel/smp.c | 3 +-- arch/arm64/kernel/smp.c | 3 +-- arch/metag/kernel/smp.c | 3 +-- arch/powerpc/kernel/smp.c | 2 +- arch/x86/kernel/smpboot.c | 2 +- drivers/acpi/pci_root.c | 2 +- drivers/base/node.c | 2 +- drivers/cpufreq/pasemi-cpufreq.c | 2 +- drivers/iommu/intel-iommu.c | 4 ++-- drivers/xen/manage.c | 1 + include/linux/kernel.h | 6 +++++- init/main.c | 27 ++++++++++++++++++++++----- kernel/async.c | 8 ++++---- kernel/extable.c | 2 +- kernel/printk/printk.c | 2 +- kernel/sched/core.c | 4 +++- lib/smp_processor_id.c | 2 +- mm/slub.c | 2 +- mm/vmscan.c | 2 +- 19 files changed, 50 insertions(+), 29 deletions(-) -- 2.30.2