2006-10-11 12:50:44

by Amol Lad

[permalink] [raw]
Subject: [PATCH 3/3] drivers/scsi/NCR5380.c: Replacing yield() with a better alternative

For this driver schedule_timeout_schedule() seems to be a better
alternative.

*Please see if the function should be called with 1 jiffy delay or more
is better*

Signed-off-by: Amol Lad <[email protected]>
---
diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/scsi/NCR5380.c linux-2.6.19-rc1/drivers/scsi/NCR5380.c
--- linux-2.6.19-rc1-orig/drivers/scsi/NCR5380.c 2006-09-21 10:15:39.000000000 +0530
+++ linux-2.6.19-rc1/drivers/scsi/NCR5380.c 2006-10-11 17:57:02.000000000 +0530
@@ -347,7 +347,7 @@ static int NCR5380_poll_politely(struct
if((r & bit) == val)
return 0;
if(!in_interrupt())
- yield();
+ schedule_timeout_interruptible(1);
else
cpu_relax();
}



2006-10-11 17:26:46

by Alan

[permalink] [raw]
Subject: Re: [PATCH 3/3] drivers/scsi/NCR5380.c: Replacing yield() with a better alternative

Ar Mer, 2006-10-11 am 18:24 +0530, ysgrifennodd Amol Lad:
> For this driver schedule_timeout_schedule() seems to be a better
> alternative.
>
> *Please see if the function should be called with 1 jiffy delay or more
> is better*

You want cond_resched() for this driver as its polling the hardware for
a change that should occur very soon. (Actually you want to throw the
hardware in the bin)

Alan

2006-10-12 04:25:46

by Amol Lad

[permalink] [raw]
Subject: Re: [PATCH 3/3] drivers/scsi/NCR5380.c: Replacing yield() with a better alternative


> You want cond_resched() for this driver as its polling the hardware for
> a change that should occur very soon. (Actually you want to throw the
> hardware in the bin)
>

Replaced schedule_timeout_interruptible() with cond_resched()

Signed-off-by: Amol Lad <[email protected]>
---
diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/scsi/NCR5380.c linux-2.6.19-rc1/drivers/scsi/NCR5380.c
--- linux-2.6.19-rc1-orig/drivers/scsi/NCR5380.c 2006-09-21 10:15:39.000000000 +0530
+++ linux-2.6.19-rc1/drivers/scsi/NCR5380.c 2006-10-11 17:57:02.000000000 +0530
@@ -347,7 +347,7 @@ static int NCR5380_poll_politely(struct
if((r & bit) == val)
return 0;
if(!in_interrupt())
- yield();
+ cond_resched();
else
cpu_relax();
}