Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148849260
D50568.1788997937.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D50568.1788997937.diff
View Options
Index: sys/vm/vm_object.c
===================================================================
--- sys/vm/vm_object.c
+++ sys/vm/vm_object.c
@@ -1020,8 +1020,7 @@
}
}
- vm_pageout_flush(ma, count, pagerflags, 0, &runlen, eio);
- return (runlen);
+ return (vm_pageout_flush(ma, count, pagerflags, eio));
}
/*
Index: sys/vm/vm_pageout.h
===================================================================
--- sys/vm/vm_pageout.h
+++ sys/vm/vm_pageout.h
@@ -100,7 +100,7 @@
void vm_wait_min(void);
void vm_wait_severe(void);
-int vm_pageout_flush(vm_page_t *, int, int, int, int *, boolean_t *);
+int vm_pageout_flush(vm_page_t *, int count, int flags, boolean_t *eio);
void vm_pageout_oom(int shortage);
#endif /* _KERNEL */
Index: sys/vm/vm_pageout.c
===================================================================
--- sys/vm/vm_pageout.c
+++ sys/vm/vm_pageout.c
@@ -438,7 +438,7 @@
}
return (vm_pageout_flush(&mc[page_base], pageout_count,
- VM_PAGER_PUT_NOREUSE, 0, NULL, NULL));
+ VM_PAGER_PUT_NOREUSE, NULL));
}
/*
@@ -450,19 +450,19 @@
* the parent to do more sophisticated things we may have to change
* the ordering.
*
- * Returned runlen is the count of pages between mreq and first
- * page after mreq with status VM_PAGER_AGAIN.
- * *eio is set to TRUE if pager returned VM_PAGER_ERROR or VM_PAGER_FAIL
- * for any page in runlen set.
+ * If eio is not NULL, returns the count of pages between 0 and first page
+ * with status VM_PAGER_AGAIN. *eio is set to TRUE if pager returned
+ * VM_PAGER_ERROR or VM_PAGER_FAIL for any page in that set.
+ *
+ * Otherwise, returnsthe number of paged-out pages.
*/
int
-vm_pageout_flush(vm_page_t *mc, int count, int flags, int mreq, int *prunlen,
- boolean_t *eio)
+vm_pageout_flush(vm_page_t *mc, int count, int flags, boolean_t *eio)
{
vm_object_t object = mc[0]->object;
int pageout_status[count];
int numpagedout = 0;
- int i, runlen;
+ int i;
VM_OBJECT_ASSERT_WLOCKED(object);
@@ -488,7 +488,6 @@
vm_pager_put_pages(object, mc, count, flags, pageout_status);
- runlen = count - mreq;
if (eio != NULL)
*eio = FALSE;
for (i = 0; i < count; i++) {
@@ -540,12 +539,11 @@
numpagedout++;
} else
vm_page_activate(mt);
- if (eio != NULL && i >= mreq && i - mreq < runlen)
+ if (eio != NULL)
*eio = TRUE;
break;
case VM_PAGER_AGAIN:
- if (i >= mreq && i - mreq < runlen)
- runlen = i - mreq;
+ count = i;
break;
}
@@ -560,8 +558,8 @@
vm_page_sunbusy(mt);
}
}
- if (prunlen != NULL)
- *prunlen = runlen;
+ if (eio != NULL)
+ return (count);
return (numpagedout);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Sep 9, 11:52 PM (10 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29530251
Default Alt Text
D50568.1788997937.diff (2 KB)
Attached To
Mode
D50568: vm_pageout: reduce number of flush() params
Attached
Detach File
Event Timeline
Log In to Comment