Searched +hist:1 +hist:d578e15 (Results 1 - 10 of 10) sorted by relevance

/haiku/src/system/kernel/vm/
H A DVMPageQueue.hdiff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
H A Dvm_page.cppdiff 1d26c724 Thu Jun 10 11:30:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> vm_page_allocate_page_run(): Added parameter "limit", specifying the upper
physical address limit for the page run to allocate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37086 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1e175b59 Sun Jan 03 18:09:58 MST 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Removed duplicate condition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34886 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1af7d115 Sat Oct 10 16:37:26 MDT 2009 Michael Lotz <mmlr@mlotz.ch> * Rework page writing to combine page writes where possible. For now the pages
are required to be physically contiguos, which should be reworked to put them
into seperate iovecs. Still this manages to combine a great deal of page
writes into larger bursts already. Reduces the amount of IO requests being
scheduled (and greatly benefits media where page wise writes are slow when
they are accessed through a non-IOScheduler path, i.e. USB mass storage until
that is properly implemented).
* Abstracted per page page writing tasks into a PageWriteWrapper class.
* Abstracted per transfer page writing tasks into PageWriteTransfer class which
formerly was the PageWriterCallback.
* Use both classes from the PageWriterRun and from
vm_page_write_modified_page_range to remove code duplication.
* Adjusted synchronous VMAnonymousCache::Write() to cope correctly with larger
iovecs and more than one iovec. It assumed that there was exactly one page per
vector previously.
* Introduced MaxPagesPerWrite() and MaxPagesPerAsyncWrite() to VMCache to allow
a cache to specify restricitions. VMAnonymousCache does restrict the max pages
to 1 for WriteAsync right now as I didn't feel like reworking that one to cope
with non single page writes just yet.
* Pulled out PageWriteTransfer methods for better readability.
* Some typo fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33507 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1af7d115 Sat Oct 10 16:37:26 MDT 2009 Michael Lotz <mmlr@mlotz.ch> * Rework page writing to combine page writes where possible. For now the pages
are required to be physically contiguos, which should be reworked to put them
into seperate iovecs. Still this manages to combine a great deal of page
writes into larger bursts already. Reduces the amount of IO requests being
scheduled (and greatly benefits media where page wise writes are slow when
they are accessed through a non-IOScheduler path, i.e. USB mass storage until
that is properly implemented).
* Abstracted per page page writing tasks into a PageWriteWrapper class.
* Abstracted per transfer page writing tasks into PageWriteTransfer class which
formerly was the PageWriterCallback.
* Use both classes from the PageWriterRun and from
vm_page_write_modified_page_range to remove code duplication.
* Adjusted synchronous VMAnonymousCache::Write() to cope correctly with larger
iovecs and more than one iovec. It assumed that there was exactly one page per
vector previously.
* Introduced MaxPagesPerWrite() and MaxPagesPerAsyncWrite() to VMCache to allow
a cache to specify restricitions. VMAnonymousCache does restrict the max pages
to 1 for WriteAsync right now as I didn't feel like reworking that one to cope
with non single page writes just yet.
* Pulled out PageWriteTransfer methods for better readability.
* Some typo fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33507 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1b6eff28 Sat Oct 11 14:55:32 MDT 2008 Ingo Weinhold <ingo_weinhold@gmx.de> * Replaced the vm_get_physical_page() "flags"
PHYSICAL_PAGE_{NO,CAN}_WAIT into an actual flag
PHYSICAL_PAGE_DONT_WAIT.
* Pass the flags through to the chunk mapper callback.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27979 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 6bf15ffc Sun Apr 27 08:24:18 MDT 2008 Ingo Weinhold <ingo_weinhold@gmx.de> * Changed macros that enable tracing for individual components from
defined/undefined to numeric values (0 for undefined). This allows for
trace levels.
* Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is
what one usually wants.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d26c7248fcd916adadc03b5fd59cfc4f2adfaa5 Thu Jun 10 11:30:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> vm_page_allocate_page_run(): Added parameter "limit", specifying the upper
physical address limit for the page run to allocate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37086 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
H A Dvm.cppdiff 023a547d Mon Aug 06 21:27:50 MDT 2018 Augustin Cavalier <waddlesplash@gmail.com> vm: Enable B_USER_CLONEABLE_AREA protection.

Spotted while reading through the VM code while thinking about how to
implement vfork().

When axeld disabled this in 2005 (!), Haiku's kernel was still young,
BeOS drivers were still "a thing," and there was no distinction in this
function from being called by the kernel / not by the kernel.

Now, it's 2018, we manage all drivers ourselves, have SMAP enabled by
default when available, and as axeld recently noted on the mailing lists,
"there's not much reason we still use GCC2 for the kernel anyway." So we
probably don't care about any BeOS drivers that may be broken by this
(are there any still around?)

Besides the usual fixes to get this 13-year-old chunk to work again, there
are two functional changes:
1) Allow the kernel to clone whatever it likes into the user's address space.
It seems that this is often done legitimately (e.g. team creation), and
so attempting to distinguish those cases seems more work than it may be
worth right now.

The disadvantage is that drivers without proper checks may be "tricked"
into cloning areas they shouldn't; but I'm guessing if that's the case,
then something else is probably broken and the driver should be fixed.
It seems the reverse case (cloning a userland area into the kernel)
is much more common (in fact, it looks like all 4 of the 4 places
where clone_area is used in kernel-space outside the kernel itself
are doing this.)

2) At KDEBUG_LEVEL 2 and higher, throw a panic when attempting to clone
an area that does not have the protection flag set. This should make
finding any bugs exposed by this change much easier than "hardware doesn't
work" / "black screen on boot" / etc., as well as any potential future
bugs introduced in the process of driver development.
diff 70d3bd55 Tue Oct 28 17:53:06 MDT 2014 Ingo Weinhold <ingo_weinhold@gmx.de> vm_soft_fault(): Missing DEBUG_PAGE_ACCESS_END()

... in case we'd need to unmap a page that is wired.

Fixes the immediate issue of #10977. There's a problem remaining (as
discussed in comment 1): If two threads want to wire the same page at
the same time (which led to the assertion being triggered), they will
now deadlock, waiting for each other to remove the pre-registered
VMAreaWiredRange.
diff 1fe24d0c Sat Dec 03 12:03:20 MST 2011 Michael Lotz <mmlr@mlotz.ch> Add heap with guard pages to detect out of bound reads/writes.

This is a very simple heap implementation that allocates memory so that
the end of each allocation always coincides with a page end and is
followed by a guard page which is marked non-present. Out of bounds
access (both read and write) therefore cause a crash (unhandled page
fault).

Note that this allocator is neither speed nor space efficient, indeed it
wastes huge amounts of pages and address space so it is quite easy to
hit limits. It is intended as a pure debug feature.
diff 1d26c724 Thu Jun 10 11:30:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> vm_page_allocate_page_run(): Added parameter "limit", specifying the upper
physical address limit for the page run to allocate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37086 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1ba89e67 Sat Jun 05 16:20:34 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Removed no-op VMTranslationMap::InitPostSem() and
VMAddressSpace::InitPostSem().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37025 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff ff59ce68 Wed Feb 24 07:43:20 MST 2010 Axel Dörfler <axeld@pinc-software.de> * The low resource handler now empties the cache depot's magazines; before,
they were never freed unless the cache was destroyed (I just wondered why
my system would bury >1G in the magazines).
* Made the magazine capacity variable per cache, ie. for larger objects, it's
not a good idea to have 64*CPU buffers lying around in the worst case.
* Furthermore, the create_object_cache_etc()/object_depot_init() now have
arguments for the magazine capacity as well as the maximum number of full
unused magazines.
* By default, you might want to initialize both to zero, as then some hopefully
usable defaults are computed. Otherwise (the only current example is the
vm_page_mapping cache) you can just put in the values you'd want there.
The page mapping cache uses larger values, as its objects are usually
allocated and deleted in larger chunks.
* Beware, though, I couldn't test these changes yet as Qemu didn't like to run
today. I'll test these changes on another machine now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35601 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 35d94001 Wed Dec 02 17:41:11 MST 2009 Ingo Weinhold <ingo_weinhold@gmx.de> * Changed the address space area list to doubly linked. The reason is to
simplify migration of the area management, but as a side effect, it also
makes area deletion O(1) (instead of O(n), n == number of areas in the
address space).
* Moved more area management functionality from vm.cpp to VMAddressSpace and
VMArea structure creation to VMArea. Made the list and list link members
itself private.
* VMAddressSpace tracks its amount of free space, now. This also replaces
the previous mechanism to do that only for the kernel address space. It
was broken anyway, since delete_area() subtracted the area size instead of
adding it.
* vm_free_unused_boot_loader_range():
- lastEnd could be set to a value < start, which could cause memory
outside of the given range to be unmapped. Haven't checked whether this
could happen in practice -- if so, it would be seriously unhealthy.
- The range between the end of the last area in the range and the end of
the range would never be freed.
- Fixed potential integer overflows when computing addresses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34459 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1bcca32a Fri Sep 11 01:29:36 MDT 2009 Michael Lotz <mmlr@mlotz.ch> * Also take into account that the alignment due to B_ANY_KERNEL_BLOCK_ADDRESS
can cause overflows.
* Added a generic IS_VALID_SPOT() macro that checks for overflows and checks if
the area will fit with the given constraints.
* Use the macro to simplify the places where these checks are necessary.
* Use the provided "end" limit instead of the address space end. It currently
doesn't matter but makes more sense.
* Rename newBase variables to alignedBase as that's what they are.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33061 a95241bf-73f2-0310-859d-f6bbb57e9c96
/haiku/src/system/boot/loader/
H A Dkernel_args.cppdiff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
/haiku/src/system/kernel/device_manager/
H A DIORequest.cppdiff 1aef6664 Fri Mar 22 08:14:33 MDT 2013 Alex Smith <alex@alex-smith.me.uk> Fixed compilation of VFS/IORequest trace messages.
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1aef6664d1e120c9dcfc5d7c96f6270243f984f7 Fri Mar 22 08:14:33 MDT 2013 Alex Smith <alex@alex-smith.me.uk> Fixed compilation of VFS/IORequest trace messages.
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
H A Ddma_resources.cppdiff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
H A Ddevfs.cppdiff 13882115 Sun Oct 11 10:26:21 MDT 2015 Adrien Destugues <pulkomandy@pulkomandy.tk> Implement stat.st_rdev for block and character devices.

* devfs: set st_rdev to the inode number of the node being queried. This
may not be the best thing to do, as it does not match what is set in
st_dev for other files, so it can't be used to find which device
stores a particular file. I'm not sure if st_rdev is actually used that
way anywhere, however.
* vfs: do not clobber st_rdev with -1 for "special" (device) files.
Refactor the code a little so setting the common attributes is done in
a single place.

Fixes #12390.
diff 13882115 Sun Oct 11 10:26:21 MDT 2015 Adrien Destugues <pulkomandy@pulkomandy.tk> Implement stat.st_rdev for block and character devices.

* devfs: set st_rdev to the inode number of the node being queried. This
may not be the best thing to do, as it does not match what is set in
st_dev for other files, so it can't be used to find which device
stores a particular file. I'm not sure if st_rdev is actually used that
way anywhere, however.
* vfs: do not clobber st_rdev with -1 for "special" (device) files.
Refactor the code a little so setting the common attributes is done in
a single place.

Fixes #12390.
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
/haiku/src/system/kernel/
H A Dsystem_info.cppdiff 1bc7045f Sun Dec 15 19:58:43 MST 2013 Pawel Dziepak <pdziepak@quarnos.org> kernel, libroot: Introduce new API for obtaining system info
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1bc7045fdfb85e6151d01c73669be19627c4783b Sun Dec 15 19:58:43 MST 2013 Pawel Dziepak <pdziepak@quarnos.org> kernel, libroot: Introduce new API for obtaining system info
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
/haiku/src/system/boot/platform/bios_ia32/
H A Dmmu.cppdiff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff bfb3b117 Sat May 01 18:56:40 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> mmu_init(): In case we couldn't get a memory map from the BIOS the fixed
memory setup was 1 MiB larger than advertised.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36581 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 6dacf050 Wed Mar 03 07:54:46 MST 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Ignore physical memory below 1 MB. This is a work-around for buggy BIOSes
providing incorrect memory types. It doesn't cost us anything, since the
kernel reserves all but the unusable range later anyway. Should fix #1925.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35736 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 97ad772a Sat Jan 06 04:51:21 MST 2007 Axel Dörfler <axeld@pinc-software.de> * Moved PXE page directory and page tables below the 1 MB limit.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19718 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff bfb3b117eb9c6da0cc2e712cab1321d96f70f9e1 Sat May 01 18:56:40 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> mmu_init(): In case we couldn't get a memory map from the BIOS the fixed
memory setup was 1 MiB larger than advertised.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36581 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 6dacf0502db8609688097742f5de6454f16d1f45 Wed Mar 03 07:54:46 MST 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Ignore physical memory below 1 MB. This is a work-around for buggy BIOSes
providing incorrect memory types. It doesn't cost us anything, since the
kernel reserves all but the unusable range later anyway. Should fix #1925.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35736 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 97ad772ada4480f710ffafee79b0f9c1f7e3c61d Sat Jan 06 04:51:21 MST 2007 Axel Dörfler <axeld@pinc-software.de> * Moved PXE page directory and page tables below the 1 MB limit.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19718 a95241bf-73f2-0310-859d-f6bbb57e9c96
/haiku/src/system/kernel/cache/
H A Dfile_cache.cppdiff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1f611c01 Tue Feb 16 10:22:56 MST 2010 Ingo Weinhold <ingo_weinhold@gmx.de> The file cache code was completely ignoring the vm_page::modified flag. In
particular it wouldn't set the flag when writing something to a page, but
only move it to the modified queue. Since mapping the page would move it to
another queue, the information that the page was modified would be lost and
it would never be written to disk. Was well reproducible with a Haiku image
build and limited amount of memory.
Fixes the hopefully last remaining cause for #5374.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35500 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1af7d115 Sat Oct 10 16:37:26 MDT 2009 Michael Lotz <mmlr@mlotz.ch> * Rework page writing to combine page writes where possible. For now the pages
are required to be physically contiguos, which should be reworked to put them
into seperate iovecs. Still this manages to combine a great deal of page
writes into larger bursts already. Reduces the amount of IO requests being
scheduled (and greatly benefits media where page wise writes are slow when
they are accessed through a non-IOScheduler path, i.e. USB mass storage until
that is properly implemented).
* Abstracted per page page writing tasks into a PageWriteWrapper class.
* Abstracted per transfer page writing tasks into PageWriteTransfer class which
formerly was the PageWriterCallback.
* Use both classes from the PageWriterRun and from
vm_page_write_modified_page_range to remove code duplication.
* Adjusted synchronous VMAnonymousCache::Write() to cope correctly with larger
iovecs and more than one iovec. It assumed that there was exactly one page per
vector previously.
* Introduced MaxPagesPerWrite() and MaxPagesPerAsyncWrite() to VMCache to allow
a cache to specify restricitions. VMAnonymousCache does restrict the max pages
to 1 for WriteAsync right now as I didn't feel like reworking that one to cope
with non single page writes just yet.
* Pulled out PageWriteTransfer methods for better readability.
* Some typo fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33507 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1af7d115 Sat Oct 10 16:37:26 MDT 2009 Michael Lotz <mmlr@mlotz.ch> * Rework page writing to combine page writes where possible. For now the pages
are required to be physically contiguos, which should be reworked to put them
into seperate iovecs. Still this manages to combine a great deal of page
writes into larger bursts already. Reduces the amount of IO requests being
scheduled (and greatly benefits media where page wise writes are slow when
they are accessed through a non-IOScheduler path, i.e. USB mass storage until
that is properly implemented).
* Abstracted per page page writing tasks into a PageWriteWrapper class.
* Abstracted per transfer page writing tasks into PageWriteTransfer class which
formerly was the PageWriterCallback.
* Use both classes from the PageWriterRun and from
vm_page_write_modified_page_range to remove code duplication.
* Adjusted synchronous VMAnonymousCache::Write() to cope correctly with larger
iovecs and more than one iovec. It assumed that there was exactly one page per
vector previously.
* Introduced MaxPagesPerWrite() and MaxPagesPerAsyncWrite() to VMCache to allow
a cache to specify restricitions. VMAnonymousCache does restrict the max pages
to 1 for WriteAsync right now as I didn't feel like reworking that one to cope
with non single page writes just yet.
* Pulled out PageWriteTransfer methods for better readability.
* Some typo fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33507 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1b6eff28 Sat Oct 11 14:55:32 MDT 2008 Ingo Weinhold <ingo_weinhold@gmx.de> * Replaced the vm_get_physical_page() "flags"
PHYSICAL_PAGE_{NO,CAN}_WAIT into an actual flag
PHYSICAL_PAGE_DONT_WAIT.
* Pass the flags through to the chunk mapper callback.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27979 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff ea2cd27e Wed Dec 21 10:00:03 MST 2005 Axel Dörfler <axeld@pinc-software.de> * Fixed the strange vm_cache_ref reference count mechanism: now, a fresh
vm_cache_ref starts with a reference count of 1. When acquiring a vm_cache,
you no longer need to worry if that should go through the vm_store, or not;
as it now always does.
* map_backing_store() no longer needs to play with the vm_cache_ref
references.
* that simplified some code.
* vfs_get_vnode_cache() now grabs a reference to the cache, if successful.
* better balanced vnode ownership on vnode_store creation (vnode_store
released the vnode before if its creation failed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15641 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1c88c851 Wed Oct 19 17:01:57 MDT 2005 Axel Dörfler <axeld@pinc-software.de> Turned off debug output again - also temporarily removed the file cache warning
about our block_io module not honouring the total length in read_pages().
Removed drops into the debugger when there is a block without an "original"
data buffer - that's completely normal and happens when someone asks for
a cleared block that is not yet in the cache.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14437 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1d578e15fe5b5c3ff62866ae81aef529d00d7762 Wed Jun 02 14:46:49 MDT 2010 Ingo Weinhold <ingo_weinhold@gmx.de> Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
diff 1f611c018b474c78f84ea905e574c24586ae85b1 Tue Feb 16 10:22:56 MST 2010 Ingo Weinhold <ingo_weinhold@gmx.de> The file cache code was completely ignoring the vm_page::modified flag. In
particular it wouldn't set the flag when writing something to a page, but
only move it to the modified queue. Since mapping the page would move it to
another queue, the information that the page was modified would be lost and
it would never be written to disk. Was well reproducible with a Haiku image
build and limited amount of memory.
Fixes the hopefully last remaining cause for #5374.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35500 a95241bf-73f2-0310-859d-f6bbb57e9c96

Completed in 466 milliseconds