Jak zjistit write-cache na IDE?

Vitezslav Samel samel na mail.cz
Pondělí Červen 4 10:31:52 CEST 2001


On Fri, Jun 01, 2001 at 02:27:09PM +0000, Cejka Rudolf wrote:
> Zdravim,
>   narazil jsem na mensi problem - netusi nekdo, jak lze v Linuxu
> zjistit, zda je nebo neni na IDE disku zapnuta write-cache?
> V hdparm -i/-I/-v nic nevidim.

	Ahoj Rudo!

  Stacil by Ti nasledujici patch (proti hdparm-4.1 - zkouseno s jadrem
2.2.19) ?

	Ahoj Vita

P.S. Pred nejakym casem na linux-kernel probihala diskuse proc jsou v
nekterych pripadech IDE disky o dost rychlejsi nez SCSI. Nakonec A. Hedrick
(ci jak se to jmenuje) vysvetlil, ze IDE disky maji zapnutou prave
write-cache a ze oproti SCSI diskum nemaji ci nepouzivaji zadny prostredek k
vyprazdneni teto cache nebo nepodporuji zadny analogicky prostredek jako je
barrier() pro pametove pristupy. Tim padem jsou nektere benchmarky silne
zkresleny.

diff -urN hdparm-4.1.orig/hdparm.c hdparm-4.1/hdparm.c
--- hdparm-4.1.orig/hdparm.c	Fri Mar  2 22:01:44 2001
+++ hdparm-4.1/hdparm.c	Mon Jun  4 10:21:45 2001
@@ -17,7 +17,7 @@
 #include <sys/types.h>
 #include <linux/hdreg.h>
 #include <linux/major.h>
-#include <sys/mount.h>
+#include <linux/fs.h>
 
 #define VERSION "v4.1"
 
@@ -292,6 +292,13 @@
 			printf(": unknown setting"); 
 		else 
 			printf(": mode=0x%02X (%d)",id_regs[91]&0xFF,id_regs[91]&0xFF); 
+	} 
+	printf("\n WriteCache=%s",YN(id_regs[82]&32));
+	if (id_regs[82] & 32) { 
+		if (!(id_regs[85]&32)) 
+			printf(": disabled"); 
+		else 
+			printf(": enabled"); 
 	} 
 #ifdef __NEW_HD_DRIVE_ID
 	if ((id->minor_rev_num) || (id->major_rev_num)) {


Další informace o konferenci Linux