From: Gene Heskett <gene.heskett@verizon.net>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
"Eugeny S. Mints" <emints@ru.mvista.com>,
Daniel Walker <dwalker@mvista.com>
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.12-rc6-V0.7.48-00
Date: Sat, 11 Jun 2005 21:40:36 -0400 [thread overview]
Message-ID: <200506112140.36352.gene.heskett@verizon.net> (raw)
In-Reply-To: <20050611184819.GA21033@elte.hu>
On Saturday 11 June 2005 14:48, Ingo Molnar wrote:
>* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
>> Hi Ingo,
>>
>> I'm having some difficulty with your latest patches; more
>> specifically linux-2.6.12-rc6-git4-RT-V0.7.48-10 floods me with
>> BUGs like these:
>>
>> I gather these are because of:
>>
>> drivers/usb/code/hcd.c:rh_report_status
>>
>> static void rh_report_status (unsigned long ptr)
>
>does the patch below help?
>
>> On another note; X seems to have trouble getting up. It consumes a
>> full CPU right after mode switching (afaict) without getting any
>> progress. I'll try and get a nice trace of X using sysrq-t.
>
>could this be due to the messages spamming the console?
>
> Ingo
>
>--- usb/core/hcd.c.orig
>+++ usb/core/hcd.c
>@@ -353,7 +353,9 @@ static int rh_call_control (struct usb_h
> const u8 *bufp = tbuf;
> int len = 0;
> int patch_wakeup = 0;
>+#ifndef CONFIG_PREEMPT_RT
> unsigned long flags;
>+#endif
> int status = 0;
> int n;
>
>@@ -506,13 +508,17 @@ error:
> }
>
> /* any errors get returned through the urb completion */
>+#ifndef CONFIG_PREEMPT_RT
> local_irq_save (flags);
>+#endif
> spin_lock (&urb->lock);
> if (urb->status == -EINPROGRESS)
> urb->status = status;
> spin_unlock (&urb->lock);
> usb_hcd_giveback_urb (hcd, urb, NULL);
>+#ifndef CONFIG_PREEMPT_RT
> local_irq_restore (flags);
>+#endif
> return 0;
> }
>
>@@ -562,15 +568,13 @@ static void rh_report_status (unsigned l
> unsigned long flags;
>
> urb = (struct urb *) ptr;
>- local_irq_save (flags);
>- spin_lock (&urb->lock);
>+ spin_lock_irqsave (&urb->lock, flags);
>
> /* do nothing if the urb's been unlinked */
> if (!urb->dev
>
> || urb->status != -EINPROGRESS
> || (hcd = urb->dev->bus->hcpriv) == NULL) {
>
>- spin_unlock (&urb->lock);
>- local_irq_restore (flags);
>+ spin_unlock_irqrestore (&urb->lock, flags);
> return;
> }
>
>@@ -588,12 +592,12 @@ static void rh_report_status (unsigned l
> mod_timer (&hcd->rh_timer, jiffies + HZ/4);
> }
> spin_unlock (&hcd_data_lock);
>- spin_unlock (&urb->lock);
>
> /* local irqs are always blocked in completions */
> if (length > 0)
> usb_hcd_giveback_urb (hcd, urb, NULL);
>- local_irq_restore (flags);
>+
>+ spin_unlock_irqrestore (&urb->lock, flags);
> }
>
> /*-----------------------------------------------------------------
>--------*/ @@ -619,17 +623,23 @@ static int rh_urb_enqueue (struct
> usb_hc
>
> static int usb_rh_urb_dequeue (struct usb_hcd *hcd, struct urb
> *urb) {
>+#ifndef CONFIG_PREEMPT_RT
> unsigned long flags;
>+#endif
>
> /* note: always a synchronous unlink */
> if ((unsigned long) urb == hcd->rh_timer.data) {
> del_timer_sync (&hcd->rh_timer);
> hcd->rh_timer.data = 0;
>
>+#ifndef CONFIG_PREEMPT_RT
> local_irq_save (flags);
>+#endif
> urb->hcpriv = NULL;
> usb_hcd_giveback_urb (hcd, urb, NULL);
>+#ifndef CONFIG_PREEMPT_RT
> local_irq_restore (flags);
>+#endif
>
> } else if (usb_pipeendpoint(urb->pipe) == 0) {
> spin_lock_irq(&urb->lock); /* from usb_kill_urb */
>@@ -1357,15 +1367,13 @@ hcd_endpoint_disable (struct usb_device
>
> WARN_ON (!HC_IS_RUNNING (hcd->state) && hcd->state !=
> HC_STATE_HALT);
>
>- local_irq_disable ();
>-
> /* FIXME move most of this into message.c as part of its
> * endpoint disable logic
> */
>
> /* ep is already gone from udev->ep_{in,out}[]; no more submits */
> rescan:
>- spin_lock (&hcd_data_lock);
>+ spin_lock_irq (&hcd_data_lock);
> list_for_each_entry (urb, &ep->urb_list, urb_list) {
> int tmp;
>
>@@ -1378,13 +1386,13 @@ rescan:
> if (urb->status != -EINPROGRESS)
> continue;
> usb_get_urb (urb);
>- spin_unlock (&hcd_data_lock);
>+ spin_unlock_irq (&hcd_data_lock);
>
>- spin_lock (&urb->lock);
>+ spin_lock_irq (&urb->lock);
> tmp = urb->status;
> if (tmp == -EINPROGRESS)
> urb->status = -ESHUTDOWN;
>- spin_unlock (&urb->lock);
>+ spin_unlock_irq (&urb->lock);
>
> /* kick hcd unless it's already returning this */
> if (tmp == -EINPROGRESS) {
>@@ -1407,8 +1415,7 @@ rescan:
> /* list contents may have changed */
> goto rescan;
> }
>- spin_unlock (&hcd_data_lock);
>- local_irq_enable ();
>+ spin_unlock_irq (&hcd_data_lock);
>
> /* synchronize with the hardware, so old configuration state
> * clears out immediately (and will be freed).
>-
I just tried to build the V0.7.48-12 version, preempt mode 3,
no hardirq's, and got this:
CC arch/i386/kernel/init_task.o
arch/i386/kernel/init_task.c:17: error: `SPIN_LOCK_UNLOCKED' undeclared here (not in a function)
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.mmap_sem.wait_lock')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.mmap_sem.wait_list')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.mmap_sem')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.page_table_lock')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.mmlist')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.cpu_vm_mask')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx.users')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx.wait.lock')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx.wai
t.task_list')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx.wait')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx.ctx_lock')
arch/i386/kernel/init_task.c:17: error: initializer element is not constant
arch/i386/kernel/init_task.c:17: error: (near initialization for `init_mm.default_kioctx')
make[1]: *** [arch/i386/kernel/init_task.o] Error 1
make: *** [arch/i386/kernel] Error 2
???
Essentially the same .config as was used to build 48-10 earlier today
--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.35% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com and AOL/TW attorneys please note, additions to the above
message by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.
next prev parent reply other threads:[~2005-06-12 1:41 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-08 11:28 [patch] Real-Time Preemption, -RT-2.6.12-rc6-V0.7.48-00 Ingo Molnar
2005-06-08 14:18 ` Michal Schmidt
2005-06-08 14:40 ` Keith Owens
2005-06-08 14:41 ` Paulo Marques
2005-06-08 15:04 ` Michal Schmidt
2005-06-08 15:23 ` Keith Owens
2005-06-08 15:56 ` Paulo Marques
2005-06-08 14:32 ` Michal Schmidt
2005-06-08 15:48 ` K.R. Foley
2005-06-08 16:08 ` K.R. Foley
2005-06-08 16:26 ` K.R. Foley
2005-06-08 17:26 ` K.R. Foley
2005-06-08 19:18 ` Ingo Molnar
2005-06-09 11:39 ` Ingo Molnar
2005-06-10 13:34 ` K.R. Foley
2005-06-09 8:47 ` Serge Noiraud
2005-06-09 11:55 ` Ingo Molnar
2005-06-09 15:12 ` Serge Noiraud
2005-06-09 16:34 ` Daniel Walker
2005-06-13 8:53 ` Serge Noiraud
2005-06-13 9:07 ` Ingo Molnar
2005-06-08 17:51 ` Michal Schmidt
2005-06-09 11:45 ` Ingo Molnar
2005-06-09 12:09 ` Michal Schmidt
2005-06-09 12:13 ` Ingo Molnar
2005-06-09 12:48 ` Michal Schmidt
2005-06-10 8:56 ` Esben Nielsen
2005-06-08 19:58 ` Daniel Walker
2005-06-09 21:24 ` Michal Schmidt
2005-06-09 21:34 ` Michal Schmidt
2005-06-11 7:32 ` Ingo Molnar
2005-06-11 8:10 ` Ingo Molnar
2005-06-11 16:35 ` Peter Zijlstra
2005-06-11 18:48 ` Ingo Molnar
2005-06-11 21:14 ` Peter Zijlstra
2005-06-12 1:40 ` Gene Heskett [this message]
2005-06-12 6:49 ` Ingo Molnar
2005-06-12 9:02 ` Gene Heskett
2005-06-12 10:35 ` Ingo Molnar
2005-06-12 13:40 ` Gene Heskett
2005-06-12 13:49 ` Ingo Molnar
2005-06-12 14:23 ` Gene Heskett
2005-06-13 2:11 ` Gene Heskett
2005-06-13 6:09 ` Ingo Molnar
2005-06-13 8:37 ` Gene Heskett
2005-06-14 18:24 ` K.R. Foley
2005-06-14 18:54 ` Ingo Molnar
2005-06-14 22:45 ` Daniel Walker
2005-06-15 6:12 ` Ingo Molnar
2005-06-15 9:13 ` Esben Nielsen
2005-06-14 20:37 ` Paul E. McKenney
2005-06-16 3:51 ` K.R. Foley
2005-06-16 7:29 ` Ingo Molnar
2005-06-16 11:22 ` K.R. Foley
2005-06-16 17:32 ` Ingo Molnar
2005-06-16 17:59 ` K.R. Foley
2005-06-16 20:37 ` K.R. Foley
2005-06-17 11:08 ` Ingo Molnar
2005-06-16 20:43 ` Ingo Molnar
2005-06-17 2:06 ` Gene Heskett
2005-06-17 4:53 ` Gene Heskett
2005-06-17 11:18 ` Ingo Molnar
2005-06-17 14:12 ` K.R. Foley
2005-06-17 15:33 ` K.R. Foley
2005-06-17 19:28 ` William Weston
2005-06-17 21:30 ` William Weston
2005-06-18 12:28 ` Ingo Molnar
2005-06-21 1:18 ` William Weston
2005-06-23 2:05 ` William Weston
2005-06-23 7:56 ` Ingo Molnar
2005-06-23 13:45 ` Gene Heskett
2005-06-21 13:10 ` Ingo Molnar
2005-06-21 19:08 ` William Weston
2005-06-21 20:17 ` Benjamin LaHaise
2005-06-21 20:37 ` William Weston
2005-06-21 20:48 ` Benjamin LaHaise
2005-06-22 2:42 ` Gene Heskett
2005-06-22 7:40 ` Ingo Molnar
2005-06-22 13:27 ` Gene Heskett
2005-06-22 13:51 ` Gene Heskett
2005-06-22 14:08 ` Gene Heskett
2005-06-25 4:41 ` Ingo Molnar
2005-06-25 4:47 ` Ingo Molnar
2005-06-25 5:39 ` Gene Heskett
2005-06-25 7:26 ` Gene Heskett
2005-06-25 9:12 ` Ingo Molnar
2005-06-25 13:19 ` Gene Heskett
2005-06-25 14:39 ` Gene Heskett
2005-06-27 19:01 ` Real-Time Preemption, -RT-2.6.12-final-V0.7.50-24 Chuck Harding
2005-06-27 19:42 ` Chuck Harding
2005-06-27 21:08 ` Gene Heskett
2005-06-27 20:09 ` Daniel Walker
2005-06-27 20:28 ` Chuck Harding
2005-06-28 0:50 ` Daniel Walker
2005-06-28 7:53 ` Steven Rostedt
2005-06-28 8:18 ` Ingo Molnar
2005-06-28 8:34 ` Steven Rostedt
2005-06-28 9:12 ` Ingo Molnar
2005-06-28 15:26 ` Michal Schmidt
2005-06-28 15:31 ` Ingo Molnar
2005-06-28 18:50 ` Chuck Harding
2005-06-28 22:16 ` Chuck Harding
2005-06-29 0:32 ` Chuck Harding
2005-06-28 15:54 ` Daniel Walker
2005-06-21 13:12 ` [patch] Real-Time Preemption, -RT-2.6.12-rc6-V0.7.48-00 Ingo Molnar
[not found] ` <Pine.LNX.4.58.0506211228210.16701@echo.lysdexia.org>
2005-06-22 8:03 ` Ingo Molnar
2005-06-22 8:24 ` Ingo Molnar
2005-06-22 10:08 ` Ingo Molnar
2005-06-22 21:53 ` William Weston
2005-06-22 22:00 ` Ingo Molnar
2005-06-22 23:06 ` William Weston
2005-06-23 0:10 ` Ingo Molnar
2005-06-23 22:11 ` William Weston
2005-06-24 1:46 ` William Weston
2005-06-24 7:06 ` Ingo Molnar
2005-06-24 22:31 ` William Weston
2005-06-25 4:14 ` Ingo Molnar
2005-06-27 4:21 ` William Weston
2005-06-27 8:15 ` Ingo Molnar
2005-06-28 3:32 ` William Weston
2005-06-28 8:10 ` Ingo Molnar
2005-06-28 11:15 ` Ingo Molnar
[not found] ` <Pine.LNX.4.58.0506281745040.10406@echo.lysdexia.org>
2005-06-29 12:54 ` Ingo Molnar
2005-06-30 0:29 ` William Weston
2005-06-27 5:43 ` Gene Heskett
2005-06-27 8:17 ` Ingo Molnar
2005-06-27 17:29 ` Gene Heskett
2005-06-27 19:54 ` Ingo Molnar
2005-06-27 21:17 ` Gene Heskett
2005-06-28 8:28 ` Ingo Molnar
2005-06-08 14:02 kus Kusche Klaus
2005-06-08 14:14 ` Thomas Gleixner
2005-06-08 15:49 ` Daniel Walker
2005-06-08 15:50 ` Ingo Molnar
2005-06-08 16:23 ` Thomas Gleixner
2005-06-08 17:29 ` Daniel Walker
2005-06-08 19:24 ` Ingo Molnar
2005-06-12 9:29 Zoltan Boszormenyi
2005-06-12 10:39 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200506112140.36352.gene.heskett@verizon.net \
--to=gene.heskett@verizon.net \
--cc=a.p.zijlstra@chello.nl \
--cc=dwalker@mvista.com \
--cc=emints@ru.mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).