| To: | tom wang <wddi_1976@xxxxxxxxxxxx> |
|---|---|
| Subject: | Re: the oops under heavy load |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Tue, 22 Oct 2002 13:01:18 +0100 |
| Cc: | linux-xfs@xxxxxxxxxxx |
| In-reply-to: | <20021022072738.85687.qmail@xxxxxxxxxxxxxxxxxxxxxxxxxxx>; from wddi_1976@xxxxxxxxxxxx on Tue, Oct 22, 2002 at 03:27:38PM +0800 |
| References: | <20021022072738.85687.qmail@xxxxxxxxxxxxxxxxxxxxxxxxxxx> |
| Sender: | linux-xfs-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.2.5.1i |
On Tue, Oct 22, 2002 at 03:27:38PM +0800, tom wang wrote:
> hi:
> xfs developers.
>
> when I test xfs under heavy load, I found an oops at
> the function unlock_page(). After study the trace of
> oops,
> I found that the oops happened here.
> (fs/xfs/pagebuf/page_buf.c 562 )
>
>
> if (!pb->pb_locked) {
> for (pi = 0; pi < page_count; pi++) {
> unlock_page(pb->pb_pages[pi]);
> }
> }
>
> I investigate the src code. I found that when the
> memory is tight,
> the function (_pagebuf_lookup_pages) did not return
> and it also did not check
> the pointer pb->pb_pages[pi], so if the memory is
> tight, pb->pb_pages[pi]
> maybe NULL, at that time, if we called
> unlock_page(pb->pb_pages[pi]), oops
> will happen.
You're right. I'll add an check to only unlock if the page is actually
present. Thanks a lot for finding that bug.
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | the oops under heavy load, tom wang |
|---|---|
| Next by Date: | In just 48 HOURS!!! Guaranteed!, Be on ALL the Major Search Engines |
| Previous by Thread: | the oops under heavy load, tom wang |
| Next by Thread: | In just 48 HOURS!!! Guaranteed!, Be on ALL the Major Search Engines |
| Indexes: | [Date] [Thread] [Top] [All Lists] |