From 05e7070db686aa8cb196dec23204cfc66734fbca Mon Sep 17 00:00:00 2001 From: mcsim Date: Mon, 5 Dec 2011 23:31:25 +0100 Subject: --- user/Maksym_Planeta.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'user') diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 1c589ed8..59b562c9 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -47,6 +47,8 @@ Here are follow operations: When fsx tries to read data kernel calls pager with seqno_memory_object_data_request, and pager returns on step 4 zeros either with memory_object_data_provided or memory_object_data_unavailable. Before this, in default_pager_set_size memory_object_lock_request called to flush any kernel caches, that could hold data to be truncated. When I set offset to 0 and size to limit in memory_object_lock_request it appeared another error ([[see|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#fsx_fail2411]]). Both these behaviors appear to be quite strange for me. It is quite late now, so i put these notes to not forget this and went sleep. Continue tomorrow. +5.12.11 Here is a problem with writing by address, which was freed already. It happens in function dealloc_direct in macros invalidate_block. This function is called from pager_truncate in branch when condition "if (!INDIRECT_PAGEMAP(old_size))" is true. But I didn't find why reference to freed object is kept. As workaround we can reduce kalloc_max in hurd/mach-defpager/kalloc.c to 3 to make allocator use vm_allocate always. The drawback is that allocator will allocate only multiple of vm_page_size, but this is temporary tradeoff. Till now fsx reaches operation number 14277. + ### Write own pager 6.11.11 Reading/writing for files that fit in vm_page_size works -- cgit v1.2.3