On Thu, Jun 29, 2017 at 09:54:38PM +0100, Peter Griffin wrote:
> This patch fixes the following soft lockup:
> BUG: soft lockup - CPU#0 stuck for 23s! [weston:307]
>
> On weston idle-timeout the IP is powered down and reset
> asserted. On weston resume we get a massive vblank
> IRQ storm due to
On Thu, Jun 29, 2017 at 09:54:38PM +0100, Peter Griffin wrote:
> This patch fixes the following soft lockup:
> BUG: soft lockup - CPU#0 stuck for 23s! [weston:307]
>
> On weston idle-timeout the IP is powered down and reset
> asserted. On weston resume we get a massive vblank
> IRQ storm due to
On Fri, Jun 30, 2017 at 6:52 AM, Mark Rogers wrote:
> Trivial style changes. There are still 3 "line over 80 characters"
> checkpatch.pl warnings, but I think they are best left alone as
> breaking the first two warning lines could hurt readability. The third
> warning is a
On Fri, Jun 30, 2017 at 6:52 AM, Mark Rogers wrote:
> Trivial style changes. There are still 3 "line over 80 characters"
> checkpatch.pl warnings, but I think they are best left alone as
> breaking the first two warning lines could hurt readability. The third
> warning is a message that should
* Aaro Koskinen [170629 11:50]:
> Is it just me or do other OMAP users fail to see omapdrm changes being
> posted to linux-omap for testing or review purposes?
Yeah Cc:ing linux-omap in addition to the drm list is a good idea. Hopefully
we get few more people to review
On 30 June 2017 at 05:20, Bamvor Zhang Jian wrote:
> On 29 June 2017 at 19:39, Fathi Boudra wrote:
>> On 29 June 2017 at 12:01, Michael Ellerman wrote:
>>> Fathi Boudra writes:
>>>
Fix
On Thu, 2017-06-29 at 11:28 +0300, Sagi Grimberg wrote:
> >> Can you test just the one liner fix below?
> >>
> @@ -1452,7 +1452,7 @@
> isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
> {
> struct isert_conn *isert_conn = wc->qp->qp_context;
> -
* Aaro Koskinen [170629 11:50]:
> Is it just me or do other OMAP users fail to see omapdrm changes being
> posted to linux-omap for testing or review purposes?
Yeah Cc:ing linux-omap in addition to the drm list is a good idea. Hopefully
we get few more people to review changes that way.
What
On 30 June 2017 at 05:20, Bamvor Zhang Jian wrote:
> On 29 June 2017 at 19:39, Fathi Boudra wrote:
>> On 29 June 2017 at 12:01, Michael Ellerman wrote:
>>> Fathi Boudra writes:
>>>
Fix hardcoded and misplaced libmount headers. Use pkg-config instead to
figure out CFLAGS/LDLIBS,
On Thu, 2017-06-29 at 11:28 +0300, Sagi Grimberg wrote:
> >> Can you test just the one liner fix below?
> >>
> @@ -1452,7 +1452,7 @@
> isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
> {
> struct isert_conn *isert_conn = wc->qp->qp_context;
> -
Hi Frans,
Quoting Frans Klaver :
On Fri, Jun 30, 2017 at 6:42 AM, Gustavo A. R. Silva
wrote:
Propagate the return values of platform_get_irq and
devm_request_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
Hi Frans,
Quoting Frans Klaver :
On Fri, Jun 30, 2017 at 6:42 AM, Gustavo A. R. Silva
wrote:
Propagate the return values of platform_get_irq and
devm_request_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/clocksource/em_sti.c | 9 +
1 file changed, 5 insertions(+),
After removing code which was permanently disabled with ifdefs, the
function ksocknal_csum() becomes just a wrapper for crc32_le(). Remove
this useless wrapper and instead call crc32_le() directly.
This also resolves the following checkpatch warning which was
triggered by the dead code:
WARNING:
After removing code which was permanently disabled with ifdefs, the
function ksocknal_csum() becomes just a wrapper for crc32_le(). Remove
this useless wrapper and instead call crc32_le() directly.
This also resolves the following checkpatch warning which was
triggered by the dead code:
WARNING:
Hi Rafael,
On Thu, Jun 29, 2017 at 12:13:18AM +0200, Rafael J. Wysocki wrote:
> On Wednesday, June 21, 2017 03:45:44 PM Lee, Chun-Yi wrote:
> > In hotplug logic, it always indicates non-specific failure to
> > platform through _OST when handing acpi hot-remove event failed. Then
> > platform
Hi Rafael,
On Thu, Jun 29, 2017 at 12:13:18AM +0200, Rafael J. Wysocki wrote:
> On Wednesday, June 21, 2017 03:45:44 PM Lee, Chun-Yi wrote:
> > In hotplug logic, it always indicates non-specific failure to
> > platform through _OST when handing acpi hot-remove event failed. Then
> > platform
From: Álvaro Fernández Rojas
commit d7146829c9da24e285cb1b1f2156b5b3e2d40c07 upstream.
Signed-off-by: Álvaro Fernández Rojas
Cc: j...@phrozen.org
Cc: linux-m...@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork:
From: Álvaro Fernández Rojas
commit d7146829c9da24e285cb1b1f2156b5b3e2d40c07 upstream.
Signed-off-by: Álvaro Fernández Rojas
Cc: j...@phrozen.org
Cc: linux-m...@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13306/
Signed-off-by: Ralf Baechle
Print error message and propagate the return value of
platform_get_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/sata_rcar.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c
Print error message and propagate the return value of
platform_get_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/sata_rcar.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c
index ee98447..c936b2a
From: Álvaro Fernández Rojas
commit 07b50db6e685172a41b9978aebffb2438166d9b6 upstream.
Signed-off-by: Álvaro Fernández Rojas
Cc: j...@phrozen.org
Cc: linux-m...@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork:
From: Álvaro Fernández Rojas
commit 07b50db6e685172a41b9978aebffb2438166d9b6 upstream.
Signed-off-by: Álvaro Fernández Rojas
Cc: j...@phrozen.org
Cc: linux-m...@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13307/
Signed-off-by: Ralf Baechle
On Fri, Jun 30, 2017 at 6:42 AM, Gustavo A. R. Silva
wrote:
> Propagate the return values of platform_get_irq and
> devm_request_irq on failure.
>
> Signed-off-by: Gustavo A. R. Silva
> ---
> drivers/clocksource/em_sti.c | 9 +
> 1 file
On Fri, Jun 30, 2017 at 6:42 AM, Gustavo A. R. Silva
wrote:
> Propagate the return values of platform_get_irq and
> devm_request_irq on failure.
>
> Signed-off-by: Gustavo A. R. Silva
> ---
> drivers/clocksource/em_sti.c | 9 +
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff
On Thu, Jun 29, 2017 at 10:05 PM, Andy Lutomirski wrote:
> Hmm. There's another option that might be considerably nicer, though:
> put the IRQ stack at a known (at link time) position *in percpu
> space*. (Presumably it already is -- I haven't checked.) Then we do:
>
> .macro
On Thu, Jun 29, 2017 at 10:05 PM, Andy Lutomirski wrote:
> Hmm. There's another option that might be considerably nicer, though:
> put the IRQ stack at a known (at link time) position *in percpu
> space*. (Presumably it already is -- I haven't checked.) Then we do:
>
> .macro ENTER_IRQ_STACK
On 30-06-17, 06:53, Dominik Brodowski wrote:
> On Fri, Jun 30, 2017 at 09:04:25AM +0530, Viresh Kumar wrote:
> > On 29-06-17, 20:01, Dominik Brodowski wrote:
> > > On Thu, Jun 29, 2017 at 04:29:06PM +0530, Viresh Kumar wrote:
> > > > The cpufreq core and governors aren't supposed to set a limit on
On 30-06-17, 06:53, Dominik Brodowski wrote:
> On Fri, Jun 30, 2017 at 09:04:25AM +0530, Viresh Kumar wrote:
> > On 29-06-17, 20:01, Dominik Brodowski wrote:
> > > On Thu, Jun 29, 2017 at 04:29:06PM +0530, Viresh Kumar wrote:
> > > > The cpufreq core and governors aren't supposed to set a limit on
On 06/28/2017 11:00 AM, Jérôme Glisse wrote:
>
> Patchset is on top of git://git.cmpxchg.org/linux-mmotm.git so i
> test same kernel as kbuild system, git branch:
>
> https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-v24
>
> Change since v23 is code comment fixes, simplify kernel
On 06/28/2017 11:00 AM, Jérôme Glisse wrote:
>
> Patchset is on top of git://git.cmpxchg.org/linux-mmotm.git so i
> test same kernel as kbuild system, git branch:
>
> https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-v24
>
> Change since v23 is code comment fixes, simplify kernel
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
52591344 8661119d3
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
52591344 8661119d3
Print error message on platform_get_irq failure before return.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/pata_imx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/pata_imx.c b/drivers/ata/pata_imx.c
index d4caa23..65bbf36
Print error message on platform_get_irq failure before return.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/pata_imx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/pata_imx.c b/drivers/ata/pata_imx.c
index d4caa23..65bbf36 100644
---
On Fri, 2017-06-30 at 00:45 +1000, Nicholas Piggin wrote:
> On Thu, 29 Jun 2017 20:23:05 +1000
> Nicholas Piggin wrote:
>
> > On Thu, 29 Jun 2017 19:36:14 +1000
> > Nicholas Piggin wrote:
>
> > > I don't *think* the replay-wakeup-interrupt patch is
On Fri, 2017-06-30 at 00:45 +1000, Nicholas Piggin wrote:
> On Thu, 29 Jun 2017 20:23:05 +1000
> Nicholas Piggin wrote:
>
> > On Thu, 29 Jun 2017 19:36:14 +1000
> > Nicholas Piggin wrote:
>
> > > I don't *think* the replay-wakeup-interrupt patch is directly involved,
> > > but
> > > it's
Hi Michael,
Ping. Please apply this patch.
I need this to clean up Makefiles in the next development cycle.
2017-06-21 18:52 GMT+09:00 Masahiro Yamada :
> 2017-06-21 18:48 GMT+09:00 Michael Ellerman :
>> Masahiro Yamada
Hi Michael,
Ping. Please apply this patch.
I need this to clean up Makefiles in the next development cycle.
2017-06-21 18:52 GMT+09:00 Masahiro Yamada :
> 2017-06-21 18:48 GMT+09:00 Michael Ellerman :
>> Masahiro Yamada writes:
>>> 2017-06-14 15:45 GMT+09:00 Michael Ellerman :
Hi Steven,
Did you have any comments about this patch? It was sent a while ago
and if you can provide me your initial thoughts on it, I would
appreciate it. (Sorry to ping you about it during the busy merge
window time, but I was thinking if I can get any initial early
comments from you then I
Hi Steven,
Did you have any comments about this patch? It was sent a while ago
and if you can provide me your initial thoughts on it, I would
appreciate it. (Sorry to ping you about it during the busy merge
window time, but I was thinking if I can get any initial early
comments from you then I
On Thu, Jun 29, 2017 at 09:02:41PM -0700, Paul E. McKenney wrote:
[...]
> > > o net/netfilter/nf_conntrack_core.c nf_conntrack_lock()
> > > This instance of spin_unlock_wait() interacts with
> > > nf_conntrack_all_lock()'s instance of spin_unlock_wait().
> > > Although
On Thu, Jun 29, 2017 at 09:02:41PM -0700, Paul E. McKenney wrote:
[...]
> > > o net/netfilter/nf_conntrack_core.c nf_conntrack_lock()
> > > This instance of spin_unlock_wait() interacts with
> > > nf_conntrack_all_lock()'s instance of spin_unlock_wait().
> > > Although
On 30-06-17, 12:22, Chen-Yu Tsai wrote:
> On Fri, Jun 30, 2017 at 12:12 PM, Viresh Kumar
> wrote:
> > On 30-06-17, 12:05, Chen-Yu Tsai wrote:
> >> I also want to mention that for DT based platforms, this constraint
> >> should already be set in the device tree for the
On 30-06-17, 12:22, Chen-Yu Tsai wrote:
> On Fri, Jun 30, 2017 at 12:12 PM, Viresh Kumar
> wrote:
> > On 30-06-17, 12:05, Chen-Yu Tsai wrote:
> >> I also want to mention that for DT based platforms, this constraint
> >> should already be set in the device tree for the regulator, so the
> >>
Hi,
I have push one more patch which does not have this warning.
please avoid my first patch.
Thanks
~ arvind
On Friday 30 June 2017 09:30 AM, Stephen Rothwell wrote:
Hi Darren,
After merging the drivers-x86 tree, today's linux-next build (x86_64
allmodconfig) produced this warning:
Hi,
I have push one more patch which does not have this warning.
please avoid my first patch.
Thanks
~ arvind
On Friday 30 June 2017 09:30 AM, Stephen Rothwell wrote:
Hi Darren,
After merging the drivers-x86 tree, today's linux-next build (x86_64
allmodconfig) produced this warning:
Hi all,
With the merge window approaching, this is just a reminder that the
following conflict still exists. No action is necessarily needed
except to maybe mention this to Linus at the appropriate time.
James, you have been added since you merged the scsi-mkp tree int the
scsi tree.
On Tue,
Hi all,
With the merge window approaching, this is just a reminder that the
following conflict still exists. No action is necessarily needed
except to maybe mention this to Linus at the appropriate time.
James, you have been added since you merged the scsi-mkp tree int the
scsi tree.
On Tue,
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
312735176 372 368218fd5
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
312735176 372 368218fd5
On Thu, Jun 29, 2017 at 7:12 PM, Josh Poimboeuf wrote:
> On Thu, Jun 29, 2017 at 03:59:04PM -0700, Andy Lutomirski wrote:
>> >
>> > Sorry, I didn't explain it very well. Undwarf can find the regs pointer
>> > in rdi, it just doesn't trust its value.
>> >
>> > See the
On Thu, Jun 29, 2017 at 7:12 PM, Josh Poimboeuf wrote:
> On Thu, Jun 29, 2017 at 03:59:04PM -0700, Andy Lutomirski wrote:
>> >
>> > Sorry, I didn't explain it very well. Undwarf can find the regs pointer
>> > in rdi, it just doesn't trust its value.
>> >
>> > See the stack_info.next_sp field,
On Thu, 2017-06-29 at 18:50 +0200, Enric Balletbo i Serra wrote:
> Under each thermal zone there is a optional file called "mode".
> Writing
> enabled or disabled to this file allows a given thermal zone to be
> enabled
> or disabled, but in current code, the monitoring queue doesn't stops.
> Add
On Thu, 2017-06-29 at 18:50 +0200, Enric Balletbo i Serra wrote:
> Under each thermal zone there is a optional file called "mode".
> Writing
> enabled or disabled to this file allows a given thermal zone to be
> enabled
> or disabled, but in current code, the monitoring queue doesn't stops.
> Add
Propagate the return value of platform_get_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/sata_highbank.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c
index
Propagate the return value of platform_get_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/ata/sata_highbank.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c
index aafb8cc..2fc451c 100644
---
Trivial style changes. There are still 3 "line over 80 characters"
checkpatch.pl warnings, but I think they are best left alone as
breaking the first two warning lines could hurt readability. The third
warning is a message that should not be broken for the sake of grep.
All but one of the changes
Trivial style changes. There are still 3 "line over 80 characters"
checkpatch.pl warnings, but I think they are best left alone as
breaking the first two warning lines could hurt readability. The third
warning is a message that should not be broken for the sake of grep.
All but one of the changes
Hi all,
[Just adding cc's]
On Fri, 30 Jun 2017 14:56:01 +1000 Stephen Rothwell
wrote:
>
> After merging the pinctrl tree, today's linux-next build (x86_64
> allmodconfig) produced this warning:
>
> drivers/pinctrl/pinctrl-rza1.c: In function 'rza1_pinctrl_probe':
>
Hi all,
[Just adding cc's]
On Fri, 30 Jun 2017 14:56:01 +1000 Stephen Rothwell
wrote:
>
> After merging the pinctrl tree, today's linux-next build (x86_64
> allmodconfig) produced this warning:
>
> drivers/pinctrl/pinctrl-rza1.c: In function 'rza1_pinctrl_probe':
>
Hi Linus,
After merging the pinctrl tree, today's linux-next build (x86_64
allmodconfig) produced this warning:
drivers/pinctrl/pinctrl-rza1.c: In function 'rza1_pinctrl_probe':
drivers/pinctrl/pinctrl-rza1.c:1260:5: warning: 'ret' may be used uninitialized
in this function
Hi Linus,
After merging the pinctrl tree, today's linux-next build (x86_64
allmodconfig) produced this warning:
drivers/pinctrl/pinctrl-rza1.c: In function 'rza1_pinctrl_probe':
drivers/pinctrl/pinctrl-rza1.c:1260:5: warning: 'ret' may be used uninitialized
in this function
Hi all,
I'm one of the QEMU SPARC maintainers and I've been investigating why
enabling the fb console via the bochs_drm module causes a panic on
startup. The reproducer with QEMU 2.9 is easy:
$ ./qemu-system-sparc64 -m 512 -kernel rel-sparc/vmlinux -append
'console=ttyS0' -serial stdio
This
Hi all,
I'm one of the QEMU SPARC maintainers and I've been investigating why
enabling the fb console via the bochs_drm module causes a panic on
startup. The reproducer with QEMU 2.9 is easy:
$ ./qemu-system-sparc64 -m 512 -kernel rel-sparc/vmlinux -append
'console=ttyS0' -serial stdio
This
On Fri, Jun 30, 2017 at 09:04:25AM +0530, Viresh Kumar wrote:
> On 29-06-17, 20:01, Dominik Brodowski wrote:
> > On Thu, Jun 29, 2017 at 04:29:06PM +0530, Viresh Kumar wrote:
> > > The cpufreq core and governors aren't supposed to set a limit on how
> > > fast we want to try changing the
On Fri, Jun 30, 2017 at 09:04:25AM +0530, Viresh Kumar wrote:
> On 29-06-17, 20:01, Dominik Brodowski wrote:
> > On Thu, Jun 29, 2017 at 04:29:06PM +0530, Viresh Kumar wrote:
> > > The cpufreq core and governors aren't supposed to set a limit on how
> > > fast we want to try changing the
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
3802 624 324458116a
attribute_groups are not supposed to change at runtime. All functions
working with attribute_groups provided by work with const
attribute_group. So mark the non-const structs as const.
File size before:
textdata bss dec hex filename
3802 624 324458116a
Propagate the return values of platform_get_irq and
devm_request_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/clocksource/em_sti.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/clocksource/em_sti.c
Propagate the return values of platform_get_irq and
devm_request_irq on failure.
Signed-off-by: Gustavo A. R. Silva
---
drivers/clocksource/em_sti.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/clocksource/em_sti.c b/drivers/clocksource/em_sti.c
index
On Fri, Jun 30, 2017 at 12:12 PM, Viresh Kumar wrote:
> On 30-06-17, 12:05, Chen-Yu Tsai wrote:
>> On Fri, Jun 30, 2017 at 11:55 AM, Viresh Kumar
>> wrote:
>> > On 30-06-17, 11:33, Chen-Yu Tsai wrote:
>> >> AFAIK regulator constraints are
On Fri, Jun 30, 2017 at 12:12 PM, Viresh Kumar wrote:
> On 30-06-17, 12:05, Chen-Yu Tsai wrote:
>> On Fri, Jun 30, 2017 at 11:55 AM, Viresh Kumar
>> wrote:
>> > On 30-06-17, 11:33, Chen-Yu Tsai wrote:
>> >> AFAIK regulator constraints are supposed to satisfy all users of it.
>> >
>> > Right.
>>
On 30-06-17, 12:05, Chen-Yu Tsai wrote:
> On Fri, Jun 30, 2017 at 11:55 AM, Viresh Kumar
> wrote:
> > On 30-06-17, 11:33, Chen-Yu Tsai wrote:
> >> AFAIK regulator constraints are supposed to satisfy all users of it.
> >
> > Right.
> >
> >> >> >Let me try with an example.
On 30-06-17, 12:05, Chen-Yu Tsai wrote:
> On Fri, Jun 30, 2017 at 11:55 AM, Viresh Kumar
> wrote:
> > On 30-06-17, 11:33, Chen-Yu Tsai wrote:
> >> AFAIK regulator constraints are supposed to satisfy all users of it.
> >
> > Right.
> >
> >> >> >Let me try with an example. A regulator is shared
There are three positions for initializing the interrupt delivery
modes:
1) In IRQ initial function, may setup the through-local-APIC
virtual wire mode.
2) In an SMP-capable system, will try to switch to symmetric I/O
model when preparing the cpus in native_smp_prepare_cpus().
3) In UP
There are three positions for initializing the interrupt delivery
modes:
1) In IRQ initial function, may setup the through-local-APIC
virtual wire mode.
2) In an SMP-capable system, will try to switch to symmetric I/O
model when preparing the cpus in native_smp_prepare_cpus().
3) In UP
[Background]
MP specification defines three different interrupt delivery modes as follows:
1. PIC Mode
2. Virtual Wire Mode
3. Symmetric I/O Mode
They will be setup in the different periods of booting time:
1. *PIC Mode*, the default interrupt delivery modes, will be set first.
2. *Virtual
In the SMP-capable system, enable and setup the interrupt delivery
mode in native_smp_prepare_cpus().
This design mixs the APIC and SMP together, it has highly coupling.
Make the initialization of interrupt mode independent, Unify and
refine it to apic_intr_mode_init() for SMP-capable system.
Calling native_smp_prepare_cpus() to prepare for SMP bootup, does
some sanity checking, enables APIC mode and disables SMP feature.
Now, APIC mode setup has been unified to apic_intr_mode_init(),
some sanity checks are redundant and need to be cleanup.
Mark the apic_intr_mode extern to refine
[Background]
MP specification defines three different interrupt delivery modes as follows:
1. PIC Mode
2. Virtual Wire Mode
3. Symmetric I/O Mode
They will be setup in the different periods of booting time:
1. *PIC Mode*, the default interrupt delivery modes, will be set first.
2. *Virtual
In the SMP-capable system, enable and setup the interrupt delivery
mode in native_smp_prepare_cpus().
This design mixs the APIC and SMP together, it has highly coupling.
Make the initialization of interrupt mode independent, Unify and
refine it to apic_intr_mode_init() for SMP-capable system.
Calling native_smp_prepare_cpus() to prepare for SMP bootup, does
some sanity checking, enables APIC mode and disables SMP feature.
Now, APIC mode setup has been unified to apic_intr_mode_init(),
some sanity checks are redundant and need to be cleanup.
Mark the apic_intr_mode extern to refine
apic_bsp_setup() sets and returns logical APIC ID for initializing
cpu0_logical_apicid in SMP-capable system.
The id has nothing to do with the initialization of local APIC and
I/O APIC. And apic_bsp_setup() should be called for interrupt mode
setup intently.
Move the id setup to
xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus
which initializes interrupt itself.
Touching the intr_mode_init causes unexpected results on the system.
Bypass it in enlighten_pv system.
Signed-off-by: Dou Liyang
---
arch/x86/xen/enlighten_pv.c |
apic_bsp_setup() sets and returns logical APIC ID for initializing
cpu0_logical_apicid in SMP-capable system.
The id has nothing to do with the initialization of local APIC and
I/O APIC. And apic_bsp_setup() should be called for interrupt mode
setup intently.
Move the id setup to
xen_smp_ops overwrites smp_prepare_cpus to xen_pv_smp_prepare_cpus
which initializes interrupt itself.
Touching the intr_mode_init causes unexpected results on the system.
Bypass it in enlighten_pv system.
Signed-off-by: Dou Liyang
---
arch/x86/xen/enlighten_pv.c | 1 +
1 file changed, 1
Add an unconditional x86_init_ops function which defaults to the
standard function and can be overridden by the early platform code.
Signed-off-by: Dou Liyang
---
arch/x86/include/asm/x86_init.h | 2 ++
arch/x86/kernel/apic/apic.c | 2 +-
arch/x86/kernel/smpboot.c
Add an unconditional x86_init_ops function which defaults to the
standard function and can be overridden by the early platform code.
Signed-off-by: Dou Liyang
---
arch/x86/include/asm/x86_init.h | 2 ++
arch/x86/kernel/apic/apic.c | 2 +-
arch/x86/kernel/smpboot.c | 2 +-
In start_kernel(), firstly, it works on the default interrupy mode, then
switch to the final mode. Normally, Booting with BIOS reset is OK.
But, At dump-capture kernel, it boot up without BIOS reset, default mode
may not be compatible with the actual registers, that causes the delivery
interrupt
In start_kernel(), firstly, it works on the default interrupy mode, then
switch to the final mode. Normally, Booting with BIOS reset is OK.
But, At dump-capture kernel, it boot up without BIOS reset, default mode
may not be compatible with the actual registers, that causes the delivery
interrupt
Kernel use timer_irq_works() to detects the timer IRQs. It calls
mdelay(10) to delay ten ticks and check whether the timer IRQ work
or not. The mdelay() depends on the loops_per_jiffy which is set up
in calibrate_delay(). Current kernel defaults the IRQ 0 is available
when it calibrates delay.
The init_bsp_APIC() which works for the virtual wire mode is used
in ISA irq initialization at the booting time.
Currently, enable and setup the interrupt mode has been unified
and advanced just behind the timer IRQ setup. Kernel switches to
the final interrupt delivery mode directly. So
In UniProcessor kernel with UP_LATE_INIT=y, it enables and setups
interrupt delivery mode in up_late_init().
Unify it to apic_intr_mode_init(), remove APIC_init_uniprocessor().
Signed-off-by: Dou Liyang
---
arch/x86/include/asm/apic.h | 1 -
Kernel use timer_irq_works() to detects the timer IRQs. It calls
mdelay(10) to delay ten ticks and check whether the timer IRQ work
or not. The mdelay() depends on the loops_per_jiffy which is set up
in calibrate_delay(). Current kernel defaults the IRQ 0 is available
when it calibrates delay.
The init_bsp_APIC() which works for the virtual wire mode is used
in ISA irq initialization at the booting time.
Currently, enable and setup the interrupt mode has been unified
and advanced just behind the timer IRQ setup. Kernel switches to
the final interrupt delivery mode directly. So
In UniProcessor kernel with UP_LATE_INIT=y, it enables and setups
interrupt delivery mode in up_late_init().
Unify it to apic_intr_mode_init(), remove APIC_init_uniprocessor().
Signed-off-by: Dou Liyang
---
arch/x86/include/asm/apic.h | 1 -
arch/x86/kernel/apic/apic.c | 49
apic_bsp_setup() sets up the local APIC, I/O APIC and APIC timer.
The local APIC and I/O APIC setup belongs to interrupt delivery mode
setup. Setting up the local APIC timer for booting CPU is another job
and has nothing to do with interrupt delivery mode setup.
Split local APIC timer setup from
apic_bsp_setup() sets up the local APIC, I/O APIC and APIC timer.
The local APIC and I/O APIC setup belongs to interrupt delivery mode
setup. Setting up the local APIC timer for booting CPU is another job
and has nothing to do with interrupt delivery mode setup.
Split local APIC timer setup from
Now, there are many switches in kernel which are used to determine
the final interrupt delivery mode, as shown below:
1) kconfig:
CONFIG_X86_64; CONFIG_X86_LOCAL_APIC; CONFIG_x86_IO_APIC
2) kernel option: disable_apic; skip_ioapic_setup
3) CPU Capability: boot_cpu_has(X86_FEATURE_APIC)
4) MP
Now, there are many switches in kernel which are used to determine
the final interrupt delivery mode, as shown below:
1) kconfig:
CONFIG_X86_64; CONFIG_X86_LOCAL_APIC; CONFIG_x86_IO_APIC
2) kernel option: disable_apic; skip_ioapic_setup
3) CPU Capability: boot_cpu_has(X86_FEATURE_APIC)
4) MP
1 - 100 of 2216 matches
Mail list logo