Put a 1ms delay in kfs_readpage()
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 8 Dec 2015 20:52:06 +0000 (15:52 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 10 Dec 2015 16:26:40 +0000 (11:26 -0500)
The slight slowdown for our infrastructure work is worth the debugging,
enough so that I don't even want this to be a config option.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/kfs.c

index 2bee781..93c5bbd 100644 (file)
@@ -116,6 +116,12 @@ int kfs_readpage(struct page_map *pm, struct page *page)
        struct kfs_i_info *k_i_info = (struct kfs_i_info*)
                                      pm->pm_host->i_fs_info;
        uintptr_t begin = (size_t)k_i_info->filestart + pg_idx_byte;
+
+       /* Pretend that we blocked while filing this page.  This catches a lot of
+        * bugs.  It does slightly slow down the kernel, but it's only when filling
+        * the page cache, and considering we are using a RAMFS, you shouldn't
+        * measure things that actually rely on KFS's performance. */
+       kthread_usleep(1000);
        /* If we're beyond the initial start point, we just need a zero page.  This
         * is for a hole or for extending a file (even though it won't be saved).
         * Otherwise, we want the data from KFS, being careful to not copy from