Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1243043 > unrolled thread
| Started by | Alistair Popple <alistair@popple.id.au> |
|---|---|
| First post | 2015-10-09 07:40 +0200 |
| Last post | 2015-10-09 23:20 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [BUG] RCU stall in cursor_timer_handler Alistair Popple <alistair@popple.id.au> - 2015-10-09 07:40 +0200
[PATCH] fbcon: initialize blink interval before calling fb_set_par Scot Doyle <lkml14@scotdoyle.com> - 2015-10-09 17:10 +0200
Re: [PATCH] fbcon: initialize blink interval before calling fb_set_par Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2015-10-09 23:20 +0200
| From | Alistair Popple <alistair@popple.id.au> |
|---|---|
| Date | 2015-10-09 07:40 +0200 |
| Subject | Re: [BUG] RCU stall in cursor_timer_handler |
| Message-ID | <qhyzo-1e0-15@gated-at.bofh.it> |
Hi Scot,
On Sat, 3 Oct 2015 05:12:15 Scot Doyle wrote:
> On Sat, 3 Oct 2015, Alistair Popple wrote:
> > Hi,
> >
> > We have been intermittently seeing the below RCU stall at boot on a
> > PPC64LE 4.2.1 kernel which has been preventing the system from booting.
> > Further investigation indicates that ops->cur_blink_jiffies is
> > potentially being used uninitialised in cursor_timer_handler():
> >
> > static void cursor_timer_handler(unsigned long dev_addr)
> > {
> > struct fb_info *info = (struct fb_info *) dev_addr;
> > struct fbcon_ops *ops = info->fbcon_par;
> >
> > queue_work(system_power_efficient_wq, &info->queue);
> > mod_timer(&ops->cursor_timer, jiffies + ops->cur_blink_jiffies);
> > }
> ...
>
>
> Hi Alistair, thanks so much for the detailed report. Does this patch
> correct the stalls?
Sorry for the delay getting back to you. I have tested this patch and have not
observed the stall again after 71 boots of the system (usually the issue would
occur every couple of boots), so it seems to have solved the problem as far as
I can tell.
Thanks!
Regards,
Alistair
> diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
> index 1aaf893..92f3949 100644
> --- a/drivers/video/console/fbcon.c
> +++ b/drivers/video/console/fbcon.c
> @@ -1093,6 +1093,7 @@ static void fbcon_init(struct vc_data *vc, int init)
> con_copy_unimap(vc, svc);
>
> ops = info->fbcon_par;
> + ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
> p->con_rotate = initial_rotation;
> set_blitting_type(vc, info);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Scot Doyle <lkml14@scotdoyle.com> |
|---|---|
| Date | 2015-10-09 17:10 +0200 |
| Subject | [PATCH] fbcon: initialize blink interval before calling fb_set_par |
| Message-ID | <qhHt0-5GT-31@gated-at.bofh.it> |
| In reply to | #1243043 |
Since commit 27a4c827c34ac4256a190cc9d24607f953c1c459
fbcon: use the cursor blink interval provided by vt
a PPC64LE kernel fails to boot when fbcon_add_cursor_timer uses an
uninitialized ops->cur_blink_jiffies. Prevent by initializing
in fbcon_init before the call to info->fbops->fb_set_par.
Reported-and-tested-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
---
drivers/video/console/fbcon.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 1aaf893..92f3949 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -1093,6 +1093,7 @@ static void fbcon_init(struct vc_data *vc, int init)
con_copy_unimap(vc, svc);
ops = info->fbcon_par;
+ ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
p->con_rotate = initial_rotation;
set_blitting_type(vc, info);
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Benjamin Herrenschmidt <benh@kernel.crashing.org> |
|---|---|
| Date | 2015-10-09 23:20 +0200 |
| Subject | Re: [PATCH] fbcon: initialize blink interval before calling fb_set_par |
| Message-ID | <qhNf4-5xo-9@gated-at.bofh.it> |
| In reply to | #1243457 |
On Fri, 2015-10-09 at 15:08 +0000, Scot Doyle wrote: > Since commit 27a4c827c34ac4256a190cc9d24607f953c1c459 > fbcon: use the cursor blink interval provided by vt > > a PPC64LE kernel fails to boot when fbcon_add_cursor_timer uses an > uninitialized ops->cur_blink_jiffies. Prevent by initializing > in fbcon_init before the call to info->fbops->fb_set_par. > Reported-and-tested-by: Alistair Popple <alistair@popple.id.au> > Signed-off-by: Scot Doyle <lkml14@scotdoyle.com> Please add CC: <stable@vger.kernel.org> [v4.2] This bug will cause any machine using fbcon to occasionally fail to boot due to having a timer callback try to mod_timer with "jiffies + 0" without an exit condition. Cheers, Ben. > --- > drivers/video/console/fbcon.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/video/console/fbcon.c > b/drivers/video/console/fbcon.c > index 1aaf893..92f3949 100644 > --- a/drivers/video/console/fbcon.c > +++ b/drivers/video/console/fbcon.c > @@ -1093,6 +1093,7 @@ static void fbcon_init(struct vc_data *vc, int > init) > con_copy_unimap(vc, svc); > > ops = info->fbcon_par; > + ops->cur_blink_jiffies = msecs_to_jiffies(vc > ->vc_cur_blink_ms); > p->con_rotate = initial_rotation; > set_blitting_type(vc, info); > > -- > 2.1.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux > -fbdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web