Re: Processes stuck on D state on Dual Opteron

Nick Piggin
2005-04-13T03:00:05Z

Claudio Martins wrote:
> On Tuesday 12 April 2005 01:46, Andrew Morton wrote:
>
>>Claudio Martins <ctpm@rnl.ist.utl.pt> wrote:
>>
>>> I think I'm going to give a try to Neil's patch, but I'll have to apply
>>>some patches from -mm.
>>
>>Just this one if you're using 2.6.12-rc2:
>>
>>--- 25/drivers/md/md.c~avoid-deadlock-in-sync_page_io-by-using-gfp_noio Mon
>>Apr 11 16:55:07 2005 +++ 25-akpm/drivers/md/md.c Mon Apr 11 16:55:07 2005
>>@@ -332,7 +332,7 @@ static int bi_complete(struct bio *bio,
>> static int sync_page_io(struct block_device *bdev, sector_t sector, int
>>size, struct page *page, int rw)
>> {
>>- struct bio *bio = bio_alloc(GFP_KERNEL, 1);
>>+ struct bio *bio = bio_alloc(GFP_NOIO, 1);
>> struct completion event;
>> int ret;
>>
>>_
>
>
>
> Hi Andrew, all,
>
> Sorry for the delay in reporting. This patch does indeed fix the problem.
> The machine ran stress for almost 15h straight with no problems at all.
>
> As for Nick's patch I, too, think it would be nice to be included (once the
> performance problems are sorted out), since it seemed to make the block layer
> more robust and well behaved (at least with stress), although I didn't run
> performance tests to measure regressions.
>
> Thanks Nick, Neil, Andrew and all others for your great help with this
> issue. I'll have to put the machine on production now with the patch applied,
> but let me know if I can be of any further help with these issues.
>

Thanks for reporting and testing - what we need is more people
like you contributing to Linux ;)

--
SUSE Labs, Novell Inc.