- 2012年 4月 28日 16 次提交
-
-
由 Austin Clements 提交于
With the mtrace QEMU, which now switches VCPUs when there's a PAUSE, this speeds up my lame test (usertests vmoverlap) by a factor of 7 and certainly makes xv6 feel much faster.
-
由 Austin Clements 提交于
So we can hush up spurious errors.
-
由 Austin Clements 提交于
The user errors stream is disabled by default.
-
由 Austin Clements 提交于
These have the type-safety and extensibility of ostreams, but the simplicity and almost the terseness of printf.
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
-
由 Silas Boyd-Wickizer 提交于
Split the inode space into per-cpu spaces of size IPB that start at the begining of a block. Block awareness is important to avoid contention on blocks themselves when allocating or freeing an inode and updating on-disk structures. That is, I don't want to make bio scalable.
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
This might be a mistake because we can't control the order of global construction, but we already have several global constructors that were simply not being called before. As long as we keep all global constructors simple, this should be okay.
-
- 2012年 4月 26日 6 次提交
-
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
This fixes the deadlock where a thread tries to allocate an inode, and calls ilock, while another thread is simultaneously freeing the same inode.
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
- 2012年 4月 25日 14 次提交
-
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
Previously we assumed in many places that all pages between a VMA's vma_start and vma_end belonged to that VMA. For radix, the radix tree is now the source of truth about which pages a VMA maps. This will let us replace subranges of a VMA without having to split the VMA into two ranges (which would violate the commutativity rule; e.g. for disjoint unmaps within the same VMA).
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
These methods are to support changes in the VM system. key() and span() let you interrogate the current position of the iterator. next_change() and the copy/move constructors make it easy to work with spans of equal elements.
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
由 Silas Boyd-Wickizer 提交于
-
- 2012年 4月 24日 4 次提交
-
-
由 Austin Clements 提交于
I think the semantics used to be that the iterator would always start at the first non-null element, which I broke when I switched to the iterative implementation. This fixes that and introduces a method that will be useful once iterators can point to null elements.
-
由 Austin Clements 提交于
-
由 Austin Clements 提交于
This puts the trivial part of the radix_iterator constructor used by end() in the class definition, so the compiler can see the full definition of end(). This should let it inline it and, hopefully, constant-eliminate it so it doesn't get called repeatedly.
-
由 Austin Clements 提交于
In standard collection types, begin and end are methods of the collection. The global begin and end are defined in <iterator> and simply call these methods.
-