Commit Graph

33974 Commits

Author SHA1 Message Date
Michael Lotz
64bf879506 Finish the implementation of heap_debug_malloc_with_guard_page() using mprotect
to make the guard page inaccessible. Thanks Ingo for the pointer!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 23:48:51 +00:00
Ingo Weinhold
22fb471ff0 * page_writer(): Missing continue in the temporary skipping case.
* vm_page_write_modified_page_range(): Need to DEBUG_PAGE_ACCESS_END() a bit
  later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 23:01:31 +00:00
Ingo Weinhold
4322b983cd Fixed the build with DEBUG_PAGE_ACCESS enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 22:50:28 +00:00
Ingo Weinhold
fa47a7c434 page_writer():
* Use the same criterion when to write back temporary pages as the page daemon.
* Move wired and temporary pages that shall not be written back to the active or
  inactive queue so they don't get stuck in the modified queue and potentially
  cause the page writer to run permanently without actually making progress
  (#5382).

page writing implementation:
* If writing back a temporary page failed, move it back to the inactive or
  active queue, so it doesn't get stuck in the modified queue. If active paging
  continues, it might find its way back to the modified queue in the next
  iteration, but that improves the situation a bit at least. Particularly with
  the port heap pages not really being swappable ATM.
* Never dequeue pages from the modified queue. We mark them busy, so the page
  writer will skip them anyway. This allows others to play with the page to some
  extend (at least allowing to move it between the queues). This fixes #5404.
* Removed PageWriteWrapper::ClearModifiedFlag(). We clear the modified flag in
  PageWriteWrapper::SetTo(), now, so that the page writer doesn't need to do
  that explicitly either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 22:40:37 +00:00
Ingo Weinhold
bf96cfdcbe Added TODO regarding the non-swappability of the initial port heap area.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 22:19:49 +00:00
Ingo Weinhold
3795172c67 VMVnodeCache::AcquireUnreferencedStoreRef(): We put the wrong vnode when ours
was already deleted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 22:18:39 +00:00
Michael Lotz
386c8bad1b Return an error when encountering an invalid allocation info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 21:42:55 +00:00
Michael Lotz
ac653a30df Add heap_debug_set_debugger_calls() which allows to disable debugger calls for
the heap debug panics. Instead syslog output is generated if turned off.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 21:35:07 +00:00
Michael Lotz
c1502cf1b8 Add heap_debug_get_allocation_info() to retrieve the size of the allocation as
well as the thread allocating it. Can for example be used to verify that an
object or buffer is as large as expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 20:57:52 +00:00
Jérôme Duval
479e05cec9 fixed a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 20:51:59 +00:00
Michael Lotz
081ff2db28 * Add heap_debug_set_memory_reuse() which allows to disable memory reuse,
keeping all returned heap memory in the 0xdeadbeef state (including the
  first sizeof(void *) bytes otherwise for the free list). While wasting a lot
  of memory it allows you to rely on 0xdeadbeef being always present as no
  future allocation will reuse the freed memory block.
* Also added heap_debug_malloc_with_guard_page() which is intended to allocate
  a memory block so it is aligned that the start of invalid memory past the
  allocation is in an unmapped guard page. However the kernel backend that would
  guarantee this is not yet implemented, so right now this works only by chance
  if no other area happens to be allocated exactly past the created one. With a
  very specifc suspicion you can put that one allocation you get to good use
  though. It causes a crash when accessing memory past the allocation size so
  you actually get a backtrace from where the access happened instead of only
  after freeing/wall checking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 20:28:15 +00:00
Ingo Weinhold
ba3d62b66f X86VMTranslationMap::UnmapArea(): Don't change the page state before
it has been unmapped. This way modified pages could end up in the "cached"
queue without having been written back. That would be a good explanation for
#5374 (partially wrong file contents) -- as soon as such a page was freed,
the invalid on-disk contents would become visible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 19:36:17 +00:00
Ingo Weinhold
c1f3da7b5b UnmapPage() requires the caller to deal with the debug page access marking,
so the fallback implementations of UnmapPages() and UnmapArea() need to do
that. Not relevant for x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 19:10:44 +00:00
Ingo Weinhold
0f2666ecc2 _user_set_memory_protection(): Missing page access debug markers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35475 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 18:49:12 +00:00
Ingo Weinhold
b0f5b17072 Removed PageWriteWrapper::CheckRemoveFromShrunkenCache() and moved removing
the page to Done().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 18:47:45 +00:00
Axel Dörfler
a05e4ed330 * BPlusTree no longer caches the header in its own block, instead, it aggregates
a copy of its structure. CachedNode is only used to write to the header, now.
  This should cause the block_cache to no longer have any referenced blocks
  outside of any I/O.
* Coding style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 16:39:54 +00:00
Axel Dörfler
87e7b978aa * Fixed race conditions in the server's bitmap/picture handling: the objects
are now removed from the maps as soon as the client deletes them. This also
  makes the "client reference" mechanism superfluous I introduced earlier.
* ServerApp::SetCurrentCursor() must always call Desktop::SetCursor(), since it
  is also called whenever the current application changes. This fixes the cursor
  almost never changing.
* Renamed ServerPicture::Usurp()/StepDown() to PushPicture(), and PopPicture().
* Also, they now acquire a reference to the picture in question (ie. the picture
  you get from PopPicture() also owns a reference you need to free).
* ServerApp::CreatePicture() may fail, too. This case is now handled in the code
  that calls it.
* Previously, the ServerWindow tried to process up to 70 messages in one go.
  That obviously caused bug #4709. Now, we have the additional requirement to
  not hold the desktop lock for longer than 25 ms. I haven't tested it with
  Kaleidoscope yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 14:50:53 +00:00
Axel Dörfler
aeb689782c * Removed ServerCursorReference in favour of BReference.
* Simplified the Desktop::SetCursor() code a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 14:43:09 +00:00
Axel Dörfler
abf0b1523a * Removed unneeded comment/code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35470 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 14:39:48 +00:00
Axel Dörfler
a3ec278add * Made some internal lists use DoublyLinkedLists instead of struct list.
* Added a few KDL commands to improve your debugging experience.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:28:33 +00:00
Axel Dörfler
965abdebd5 * BufferQueue::Free() no longer will return negative values. As is, the max
bytes restriction is only a soft limit. This fixes stalling TCP connections
  because everything received would be out of window once this happened.
* Added a TODO to look into TCP's window management - it doesn't seem to be
  right.
* Fixed build with tracing turned on.
* Made the fNumber member of tcp_sequence private.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:27:26 +00:00
Axel Dörfler
10cb62616f * Fixed destruction order of lock/reference that could lead to access already
deleted memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35467 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:23:48 +00:00
Axel Dörfler
54f3267e78 * Fixed maintaining the object depot's free magazine count (it's not really used
though).
* Added/improved some KDL commands to make the slab easier to work with from
  KDL.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:22:58 +00:00
Axel Dörfler
2cb3c4eb06 * Improved panic output I recently ran into.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:20:01 +00:00
Axel Dörfler
4ea83177ff * Implemented a BlockWriter class that now performs writing back blocks.
* Renamed the "busy" stuff to "busy_reading", and added a "busy_writing"
  concept.
* This now allows reading a block (and other blocks), while blocks are written
  back. This should speed all operations needing to write back blocks, like
  unzipping or compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-15 13:07:14 +00:00
Axel Dörfler
fb40740174 * Restructured the notification driven addition/removal of drivers to
driver_events (ie. there is now only a single list to walk).
* Also, the DriverWatcher is now maintained using the driver_events.
  This fixes bug #5005.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 22:57:47 +00:00
Axel Dörfler
15fd71bfff * Fixed artwork directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 22:29:29 +00:00
Axel Dörfler
3d2b15cdf9 * Reorganized the new/generate menus a bit; the last level will now be
remembered, and a "new" will just continue in this level.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 22:29:01 +00:00
Axel Dörfler
755a1de8c1 * BReference no longer uses the deprecated API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35460 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 22:22:17 +00:00
Axel Dörfler
01b0c58697 * Renamed "nc" to "netcat" which seems to be its usual name.
* Removed the test driver from the image; it serves no practical purpose.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 19:42:46 +00:00
Rene Gollent
82471d43cb When counting new messages in the deskbar replicant, ignore messages that are in the Trash.
Fixes ticket #5401.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-14 03:58:33 +00:00
Stephan Aßmus
861e4437b1 If we already figured out the correct low colow to use in AttachedToWindow(),
we might as well use it. Couldn't see any regressions so far.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-13 11:43:01 +00:00
Fredrik Holmqvist
8bb32d7ee0 Patch by mmadia, and originally jprostko.
* moves Firefox's jam code to BeZillaBrowser
 * echos a warning on Firefox being phased out.
 * sets BeZillaBrowser as a dependency of Firefox 
The last two to ease transition from Firefox. This fixes #3529.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-12 20:45:08 +00:00
Adrien Destugues
8d6ef54c41 Add new translations from hta for zipomatic
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 20:18:33 +00:00
Adrien Destugues
d979a502da Update zipomatic translations from hta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 20:18:05 +00:00
Stefano Ceccherini
0b102d72d5 The hpet registers area is already wired, so use the vm_map_physical_memory()
call with the true parameter. Fixes a panic at boot when using the hpet timers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 15:57:59 +00:00
Stefano Ceccherini
a0b5b08b2e Added back the id for rtl8139C+. Tested succesfully under XenServer.
Fixes ticket #5180 (or at least part of it)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 15:45:46 +00:00
Stephan Aßmus
4f24f3110b The decision to inform the server about changed flags needs to depend on the
changed flags, not on the new flags! Fixes the server and client going out of
sync when clearing any flag that the server needs to know about.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 13:47:29 +00:00
Siarzhuk Zharski
408a0aa2f1 Identification for "Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz" added.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 06:41:13 +00:00
Siarzhuk Zharski
087acae77a The mess with Control-modifed symbols fixed. Fix by Algirdas Buckus.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 06:38:44 +00:00
Artur Wyszynski
c5b26d73a3 Simplified logic for a previous fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 05:05:41 +00:00
Artur Wyszynski
e457eb2a53 Fixed BBox behaviour when it has layout set and BView based class as a label
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-11 04:36:59 +00:00
Artur Wyszynski
e6b13a6d24 Disabled style checking, it's faster without it and gives less false positives
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-10 21:02:25 +00:00
Artur Wyszynski
be8e9d5e21 Reverted style changes pointed by stippi
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-10 20:19:10 +00:00
Artur Wyszynski
98c88afe5f Workaround for polish plural forms for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 23:58:33 +00:00
Artur Wyszynski
6c7e908b27 Ooops, it should be AboutSystem not Fonts
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 23:56:31 +00:00
Rene Gollent
03828629c7 Added Romain Picard to contributors list for his FAT fixes and other previous patches. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 23:55:55 +00:00
Stefano Ceccherini
7ae188c379 Patch by Grey which fixes "auto-enabling" of the boot loader screen debug
which happened on some systems (mine included).
Should close ticket #5341.
Thanks! 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 19:47:23 +00:00
Artur Wyszynski
e381020556 Disabled fenv for ppc & arm platforms for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 14:10:07 +00:00
Artur Wyszynski
54b738a10a * Localized AboutSystem
* Added polish translation made by me
* Added myself & Hubert Hareńczyk to polish translators
* Corrected my last name
* Honor 80lines
* Style cleanup



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-09 12:35:31 +00:00