Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1554812

Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel

From "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Newsgroups linux.kernel
Subject Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel
Date 2017-01-10 01:00 +0100
Message-ID <sXS14-29K-17@gated-at.bofh.it> (permalink)
References (5 earlier) <sXEAO-2pA-11@gated-at.bofh.it> <sXQsi-1ot-19@gated-at.bofh.it> <sXRom-1WC-19@gated-at.bofh.it> <sXRHH-231-9@gated-at.bofh.it> <sXRRn-26v-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Jan 10, 2017 at 12:40:39AM +0100, Borislav Petkov wrote:
> On Mon, Jan 09, 2017 at 03:32:04PM -0800, Paul E. McKenney wrote:
> > We could move rcu_scheduler_starting() later, as long as there
> > is no chance of preemption or context switch before it is invoked.
> > Would that help in this case, or are we already context switching before
> > acpi_os_map_cleanup() is invoked?  (If we are already context switching,
> > short-circuiting synchronize_rcu_expedited() would be a bug.)
> 
> Hmm, how about the below?
> 
> It would still happen before
> 
>         /*
>          * The boot idle thread must execute schedule()
>          * at least once to get things moving:
>          */
>         init_idle_bootup_task(current);
>         schedule_preempt_disabled();
> 
> in rest_init() and right after native_smp_prepare_cpus() which is where
> we're splatting.
> 
> Lemme run it.
> 
> Even if it works, we would have to stress-test this seriously...

Yeah, the call to wait_for_completion() at the beginning of
kernel_init_freeable() makes me extremely nervous.  Even if it does
happen to work, this looks like an accident waiting to happen.

Is it possible to instead move the ACPI initialization to follow the
workqueue initialization?

							Thanx, Paul

> ---
> diff --git a/init/main.c b/init/main.c
> index b0c9d6facef9..9be221cc87c3 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -385,7 +385,6 @@ static noinline void __ref rest_init(void)
>  {
>  	int pid;
> 
> -	rcu_scheduler_starting();
>  	/*
>  	 * We need to spawn init first so that it obtains pid 1, however
>  	 * the init task will end up wanting to create kthreads, which, if
> @@ -1019,6 +1018,8 @@ static noinline void __init kernel_init_freeable(void)
> 
>  	smp_prepare_cpus(setup_max_cpus);
> 
> +	rcu_scheduler_starting();
> +
>  	workqueue_init();
> 
>  	do_pre_smp_initcalls();
> 
> 
> -- 
> Regards/Gruss,
>     Boris.
> 
> Good mailing practices for 400: avoid top-posting and trim the reply.
> 

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> - 2017-01-08 00:40 +0100
  Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-08 01:10 +0100
    Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-08 01:30 +0100
      Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-08 01:40 +0100
        Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-08 02:00 +0100
          Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-08 02:10 +0100
            Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-08 02:50 +0100
              Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-08 03:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-08 14:10 +0100
                RE: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Zheng, Lv" <lv.zheng@intel.com> - 2017-01-09 03:00 +0100
                RE: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Zheng, Lv" <lv.zheng@intel.com> - 2017-01-09 03:40 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-09 10:40 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-09 23:20 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-09 23:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 00:20 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-10 00:20 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 00:40 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-10 00:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-10 01:00 +0100
                RE: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Zheng, Lv" <lv.zheng@intel.com> - 2017-01-10 01:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-10 02:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 03:30 +0100
                RE: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Zheng, Lv" <lv.zheng@intel.com> - 2017-01-10 06:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 07:00 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-11 10:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-11 11:00 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-11 11:10 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-11 11:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-10 10:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-11 04:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-11 10:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 01:00 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size()  and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rafael@kernel.org> - 2017-01-10 00:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-01-10 01:30 +0100
                RE: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Zheng, Lv" <lv.zheng@intel.com> - 2017-01-09 06:30 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Jörg Rödel <joro@8bytes.org> - 2017-01-09 12:00 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-01-09 23:50 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Borislav Petkov <bp@alien8.de> - 2017-01-10 00:00 +0100
                Re: 174cc7187e6f ACPICA: Tables: Back port  acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux  kernel Jörg Rödel <joro@8bytes.org> - 2017-01-10 15:00 +0100

csiph-web