From: Jason Wessel <jason.wessel@windriver.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: linux-arch@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net,
mingo@elte.hu, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/28] kdb: core for kgdb back end (2 of 2)
Date: Thu, 18 Feb 2010 09:04:36 -0600 [thread overview]
Message-ID: <4B7D5704.6060504@windriver.com> (raw)
In-Reply-To: <m1zl37xhmm.fsf@fess.ebiederm.org>
Eric W. Biederman wrote:
> Jason Wessel <jason.wessel@windriver.com> writes:
>
>
>> This patch contains the hooks and instrumentation into kernel which
>> live outside the kernel/debug directory, which the kdb core
>> will call to run commands like lsmod, dmesg, bt etc...
>>
>
> You know this dropping the locks from vmalloc_info and swap_info
> is down right ugly, and I don't believe it is safe. That code
> was not designed to run while the write_lock is held.
>
Perhaps we can find some middle ground. I don't mind simply not
allowing the information to be queried from kdb if the locks are not
available.
Which is less ugly you, making the swap_lock global or adding a function
to query it?
> How does kdb build if NOMMU is set?
>
I did not see a kernel config option called NOMMU.
Can you point me to a kernel config that uses this? Or is it the case
that it is something like "# CONFIG_MMU is not set"?
Perhaps we just set kdb to work only when CONFIG_MMU is enabled? It is
hard to say it works or not without a kernel configuration, file system
and hardware to test it with.
> Similarly with si_swapinfo. What makes it safe to run the
> code without it's locks. Safe as in no null pointer deferences
> or other nasties.
>
>
It looks to me like the original kdb took the approach of calling the
setjmp() longjmp() and if there was any kind of fault, it long jumped
back to the original context. Obviously that doesn't solve any kind of
problem with a list loop.
As I mentioned earlier, I think we should check for the lock and if it
isn't available you don't get to execute the function, else a separate
function has to be written that does the same thing safely. I do not
see any value in making a separate function to safely print the
information at this time. If you want to probe around, consider using a
gdb macro.
> I am not impressed with the mess you make of meminfo_proc_show.
> That looks like a maintenance hazard if I ever saw one. An innocent
> change to get some additional info (that happens to take a lock)
> will cause kdb to deadlock.
>
>
This code goes away if we expose a way to check for the lock.
Jason.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
WARNING: multiple messages have this Message-ID (diff)
From: Jason Wessel <jason.wessel@windriver.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: linux-kernel@vger.kernel.org,
kgdb-bugreport@lists.sourceforge.net, mingo@elte.hu,
mort@sgi.com, linux-arch@vger.kernel.org
Subject: Re: [PATCH 08/28] kdb: core for kgdb back end (2 of 2)
Date: Thu, 18 Feb 2010 09:04:36 -0600 [thread overview]
Message-ID: <4B7D5704.6060504@windriver.com> (raw)
Message-ID: <20100218150436.1oNtIZiB53inDkQyxjaEAn44p13dbAWURyqO0jKxi1A@z> (raw)
In-Reply-To: <m1zl37xhmm.fsf@fess.ebiederm.org>
Eric W. Biederman wrote:
> Jason Wessel <jason.wessel@windriver.com> writes:
>
>
>> This patch contains the hooks and instrumentation into kernel which
>> live outside the kernel/debug directory, which the kdb core
>> will call to run commands like lsmod, dmesg, bt etc...
>>
>
> You know this dropping the locks from vmalloc_info and swap_info
> is down right ugly, and I don't believe it is safe. That code
> was not designed to run while the write_lock is held.
>
Perhaps we can find some middle ground. I don't mind simply not
allowing the information to be queried from kdb if the locks are not
available.
Which is less ugly you, making the swap_lock global or adding a function
to query it?
> How does kdb build if NOMMU is set?
>
I did not see a kernel config option called NOMMU.
Can you point me to a kernel config that uses this? Or is it the case
that it is something like "# CONFIG_MMU is not set"?
Perhaps we just set kdb to work only when CONFIG_MMU is enabled? It is
hard to say it works or not without a kernel configuration, file system
and hardware to test it with.
> Similarly with si_swapinfo. What makes it safe to run the
> code without it's locks. Safe as in no null pointer deferences
> or other nasties.
>
>
It looks to me like the original kdb took the approach of calling the
setjmp() longjmp() and if there was any kind of fault, it long jumped
back to the original context. Obviously that doesn't solve any kind of
problem with a list loop.
As I mentioned earlier, I think we should check for the lock and if it
isn't available you don't get to execute the function, else a separate
function has to be written that does the same thing safely. I do not
see any value in making a separate function to safely print the
information at this time. If you want to probe around, consider using a
gdb macro.
> I am not impressed with the mess you make of meminfo_proc_show.
> That looks like a maintenance hazard if I ever saw one. An innocent
> change to get some additional info (that happens to take a lock)
> will cause kdb to deadlock.
>
>
This code goes away if we expose a way to check for the lock.
Jason.
next prev parent reply other threads:[~2010-02-18 15:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1266014143-29444-1-git-send-email-jason.wessel@windriver.com>
2010-02-12 22:35 ` [PATCH 07/28] kdb: core for kgdb back end (1 of 2) Jason Wessel
2010-02-12 22:35 ` [PATCH 08/28] kdb: core for kgdb back end (2 " Jason Wessel
2010-02-12 22:35 ` Jason Wessel
2010-02-18 5:00 ` Eric W. Biederman
2010-02-18 5:00 ` Eric W. Biederman
2010-02-18 15:04 ` Jason Wessel [this message]
2010-02-18 15:04 ` Jason Wessel
2010-02-18 16:35 ` Eric W. Biederman
2010-02-18 17:06 ` Jason Wessel
2010-02-18 19:08 ` Jason Wessel
2010-02-18 19:08 ` Jason Wessel
2010-02-18 18:07 ` Scott Lurndal
2010-02-18 18:36 ` Jason Wessel
2010-02-18 18:36 ` Jason Wessel
[not found] <1267132893-23624-1-git-send-email-jason.wessel@windriver.com>
2010-02-25 21:21 ` Jason Wessel
2010-02-25 21:21 ` Jason Wessel
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=4B7D5704.6060504@windriver.com \
--to=jason.wessel@windriver.com \
--cc=ebiederm@xmission.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-arch@vger.kernel.org \
--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).