On Wed, Feb 07, 2001 at 10:07:06PM -0500, Robert Watson wrote:
>
> On 7 Feb 2001, Dag-Erling Smorgrav wrote:
>
> > Brian Somers <[EMAIL PROTECTED]> writes:
> > > Indeed. I've been doing a ``make build'' on an OpenBSD-current vm
> > > for three days (probably about 36 hours excluding suspends) on a
> > > 366MHz laptop with a ATA33 disk.
> >
> > Would it be possible for someone experiencing this slowdown to try to
> > narrow down the day (or even the week) on which it occurred?
>
> I've experienced a substantial slowdown in VMware since bumping forwards
> from -STABLE on my workstation. As I recently commented on -emulation,
> I've also been experiencing 30-40 second hangs of the system during VMware
> startup and occasional serious slowdown while running, which may be
> related to the fairly intensive VM activity for page wiring and the like,
> or possible poor interaction with the ATA driver. I also get messages on
> the order of the following:
The slowdown during start up appears to be in biowr; this is probably
because of IDE write caching being switched off. More seriously
the vmware hangs during various phases of it's boot process.
i.e:
714 root -14 0 123M 79192K inode 0:45 25.29% 25.29% vmware
When this happens the whole machine freezes also. Processes run, but
new processes don't get forked. The whole machine appears to be I/O
bound. (What's the 'inode' state?)
The problem is definitely solved by enabling ATA_ENABLE_WC in the kernel
config. What's unclear to me is why the hang in 'inode' with it
switched off. I understand that biowr's would take longer, which is
vmware does as it brings up the virtual machine, but why the hanging
and freezing in 'inode'?
Joe
RCS file: /home/ncvs/src/sys/dev/ata/ata-disk.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -r1.91 -r1.92
--- ata-disk.c 2001/01/19 13:53:54 1.91
+++ ata-disk.c 2001/01/29 18:00:35 1.92
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.91 2001/01/19 13:53:54 peter Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.92 2001/01/29 18:00:35 sos Exp $
*/
#include "opt_global.h"
@@ -133,10 +133,15 @@
0, 0, 0, 0, ATA_C_F_ENAB_RCACHE, ATA_WAIT_INTR))
printf("ad%d: enabling readahead cache failed\n", adp->lun);
+#if defined(ATA_ENABLE_WC) || defined(ATA_ENABLE_TAGS)
if (ata_command(adp->controller, adp->unit, ATA_C_SETFEATURES,
0, 0, 0, 0, ATA_C_F_ENAB_WCACHE, ATA_WAIT_INTR))
printf("ad%d: enabling write cache failed\n", adp->lun);
-
+#else
+ if (ata_command(adp->controller, adp->unit, ATA_C_SETFEATURES,
+ 0, 0, 0, 0, ATA_C_F_DIS_WCACHE, ATA_WAIT_INTR))
+ printf("ad%d: disabling write cache failed\n", adp->lun);
+#endif
/* use DMA if drive & controller supports it */
ata_dmainit(adp->controller, adp->unit,
ata_pmode(AD_PARAM), ata_wmode(AD_PARAM), ata_umode(AD_PARAM));
PGP signature