Commit Graph

33984 Commits

Author SHA1 Message Date
Axel Dörfler 606105c62c * Reduced the maximum lock time to roughly a quantum (a little less might even
be better, though).
* This might help further with #4709.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-21 11:51:40 +00:00
Stephan Aßmus d6d0e010f4 Designed new navigation arrows. I like Navigation_Left_2 and Navigation_Right_1
best.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-21 11:47:13 +00:00
Ingo Weinhold 5fc675d57e Some refactoring:
* Added new class ProfiledEntity which Thread derives from and which is the
  new dependency for the profile result classes (instead of Thread).
* Renamed *ThreadProfileResult to *ProfileResult and *ThreadImage to
  *ProfileResultImage and move ProfileResult[Image] into a new header/source
  file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 20:31:04 +00:00
Ingo Weinhold 8b64284b67 Handle va_list copying correctly. Fixes PPC build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 19:53:48 +00:00
Ingo Weinhold 19c4af89fd Superfluous virtuals (declared in the base class already).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 18:08:07 +00:00
Ingo Weinhold a39c92c2df Removed superfluous typedef.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 18:04:32 +00:00
Ingo Weinhold 24244d3ceb idle_scan_active_pages(): vm_page_requeue() requires the caller to mark the
page accessed for the access debugging feature.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 17:24:14 +00:00
Ingo Weinhold 4a1f668383 * Also print the page for the page related asserts.
* Used vm_page::IsMapped() to simplify things.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 17:17:22 +00:00
Ingo Weinhold 0ea0681f58 Made the "message" command work correctly again. Broke it with my recent
changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 17:16:21 +00:00
Ingo Weinhold 3e5343f226 free_cached_page(): Removed incorrect asserts. The same ones appear a few
lines later anyway, after the cache has been locked and it has been verified
that the page is still a candidate. Fixes #5432.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 16:45:44 +00:00
Ingo Weinhold bd7645a12a * Made vm_page::state private and added accessor methods.
* Added kernel tracing for page state transitions.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35538 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 15:57:44 +00:00
Ingo Weinhold 98d2fc4b23 Worked around "uninitialized variable" compiler warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 14:23:18 +00:00
Ingo Weinhold 8b522fcfe6 Changed ASSERT_[ALWAYS_]PRINT() to add the additional output to the panic()
message instead of printing it before calling panic().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 14:19:52 +00:00
Ingo Weinhold 9e4ad0799b * Pass the panic() format and args through to kernel_debugger_loop(), so that
the message doesn't get truncated.
* No longer print the "PANIC:" prefix when entering the kernel debugger via
  kernel_debugger().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 14:00:56 +00:00
Ingo Weinhold cd694fdbfa * Fixed abuse of the DoublyLinkedListLink. TemporaryVariables have an
explicit queued field now. Fixes #5352.
* set_debug_variable(): Disallow symbol variable names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 13:19:41 +00:00
Ingo Weinhold 477fd1be55 Added assert in free_page().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 12:37:48 +00:00
Ingo Weinhold 211c63df5a reserve_pages(): When cannibalizing pages from the own cache it didn't check
whether the pages where mapped. Was introduced already in r22731.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 12:36:49 +00:00
Ingo Weinhold d36b9aef3e Added vm_page::IsMapped() for convenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 12:29:42 +00:00
Ingo Weinhold 9824ded0b0 cache_io(): Also requeue the last touched page to keep things roughly LRU
sorted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 10:51:53 +00:00
Adrien Destugues 62420a09d4 Update Russian and Hungarian translation from hta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 10:46:50 +00:00
Jérôme Duval cd439bd9e3 We now pin sense the headphone pin widget to check if something is plugged in. Use this to disable/enable speakers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-20 00:28:46 +00:00
Jérôme Duval 87c1c0e443 moved fenv arch implementations to their respective directories
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 22:48:35 +00:00
Axel Dörfler 75e7a5adae * Added simple test application to be able to see node monitoring messages
in order to reproduce bug #5405.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 21:35:46 +00:00
Axel Dörfler b9fa1de995 * Fixed incomplete cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 21:31:59 +00:00
Axel Dörfler 7c69435755 * Applied patch by idefix that disables the "Initialize" button if the name
field is empty. This is part of ticket #4123.
* The message constants should be moved into their own shared
  header, though; added a TODO for this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 17:22:54 +00:00
Axel Dörfler a791687e90 * Applied slightly cleaned up patch by romain that sanitizes the volume names.
* This closes bug #4602.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 16:52:55 +00:00
Axel Dörfler 63b69bec3c * Applied patch by Andreas Färber as part of #5319.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 16:44:55 +00:00
Adrien Destugues a99f1ef770 Update to hungarian localization from hta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 13:45:33 +00:00
Adrien Destugues a42582c251 Removed fake it.catkeys for appearance : it was actually a copy of fr.catkeys...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 12:36:26 +00:00
Axel Dörfler 2b9ec0a9aa * Added SudokuField::IsEmpty() method.
* The window now automatically generates a new sudoku if empty on start.
* Made SudokuField::IsSolved() const.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 09:16:11 +00:00
Adrien Destugues 73cb8df07e Fix credits for hungarian localization
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 08:50:42 +00:00
Rene Gollent 19b31ecf6f BTabView::Select() needs to update the focus tab.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-19 04:13:15 +00:00
Ingo Weinhold c3d7933274 Added missing PPCVMTranslationMap::QueryInterrupt(). Fixes #5275.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-18 17:43:09 +00:00
Ingo Weinhold dac21d8bfe * map_physical_memory() does now always set a memory type. If none is given (it
needs to be or'ed to the address specification), "uncached" is assumed.
* Set the memory type for the "BIOS" and "DMA" areas to write-back. Not sure, if
  that's correct, but that's what was effectively used on my machines before.
* Changed x86_set_mtrrs() and the CPU module hook to also set the default memory
  type.
* Rewrote the MTRR computation once more:
  - Now we know all used memory ranges, so we are free to extend used ranges
    into unused ones in order to simplify them for MTRR setup.
  - Leverage the subtractive properties of uncached and write-through ranges to
    simplify ranges of any other respectively write-back type.
  - Set the default memory type to write-back, so we don't need MTRRs for the
    RAM ranges.
  - If a new range intersects with an existing one, we no longer just fail.
    Instead we use the strictest requirements implied by the ranges. This fixes
    #5383.

Overall the new algorithm should be sufficient with far less MTRRs than before
(on my desktop machine 4 are used at maximum, while 8 didn't quite suffice
before). A drawback of the current implementation is that it doesn't deal with
the case of running out of MTRRs at all, which might result in some ranges
having weaker caching/memory ordering properties than requested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-18 13:52:43 +00:00
Adrien Destugues e5b2296d48 Localization of Screenshot app, done by mt. Thanks !
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35514 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-18 13:20:38 +00:00
Adrien Destugues 59a78061e9 Forgot to add it...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35513 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-18 13:17:55 +00:00
Adrien Destugues d933a73a7f Hungarian translation for AboutSystem from hta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-18 13:17:07 +00:00
Stephan Aßmus 423eae9f43 Patch by Humdinger: Make the formular attribute of Queries and Query templates
editable in Tracker. Thanks! Fixed #1612.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 18:26:14 +00:00
Axel Dörfler c5e52ecb78 * cache_sync_transaction() now puts all blocks into the BlockWriter, and
therefore does not unlock anymore while iterating over the transactions.
  This gave other threads the opportunity to finish a transaction, causing
  bug #5412. Also, the BlockWriter will now always close transactions on its
  own, and you need to pass the transaction hash iterator to Add().
* Also, transactions that contain blocks that are currently written back will
  be ignored by the block writer, as well as cache_sync_transaction(). This
  fixes bug #5415.
* Improved error handling if BlockWriter fails to write back blocks. Most
  notably, they are no longer left busy_writing, and the functions calling
  it do proper error reporting (besides block_cache_discard() that does not
  return any erro code; I've added a TODO note there for now).
* The BlockWriter now starts with a larger array once it has to allocate one.
* One can now limit the number of blocks that go into a BlockWriter. This is
  used by the block writer thread, that shouldn't always write back everything
  every two seconds.
* Also, the fixed array is larger now (leaving enough space such that the
  block writer/notifier does not need to allocate anything).
* And finally, if allocating the array fails, the BlockWriter falls back to the
  synchronous write back used previously. IOW it will never write back less
  blocks than you ask for.
* Added static BlockWriter::WriteBlock() method replacing write_cached_block().
* Forgot to rename block_cache::busy_count to busy_reading_count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 16:36:40 +00:00
Ingo Weinhold d4af8f3e33 Added several TODOs for problems of the IOBuffer virtual vecs code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 16:00:05 +00:00
Ingo Weinhold 176f7588eb Added warning to vm_map_physical_memory_vecs().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 15:58:12 +00:00
Axel Dörfler 8941a2ba08 * Fixed compilation with PARANOID_HEAP_VALIDATION turned on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 15:40:02 +00:00
Adrien Destugues 33eead339b * Improve the test for TimeFormat (style and error checking)
* Fix the TimeFormat API, there was a double free. Make it work as expected : you send it a number of seconds and it will format it properly in days, hours, minutes, seconds with proper plural.
 * Cleanup other parts of the Format API from useless things. They may get reintroduced later if we feel the need to do so.
 * AboutSystem now use TimeFormat to display the uptime in properly localized way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 15:35:28 +00:00
Stefano Ceccherini 03bab65450 set_hardware_timer() would sometimes (on boot) pass a negative timeout to
arch_timer_set_hardware_timer(). This was harmless, at least with our
current x86 timers implementation, since they checked for minimum timeouts.
Very small cleanup (now that the file is compiled as C++).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 09:12:43 +00:00
Rene Gollent 202a4e9c1e Fix gcc4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 00:46:43 +00:00
Adrien Destugues b2c385c072 -Added new TimeFormat API for formatting and localizing a time (uptime, copy duration, ...)
-Added a very simple test that shows the API is corrupting memory and ends up crashing
-Fixed build of other locale tests


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-17 00:02:50 +00:00
Axel Dörfler 04761ff76d * Updated the "tmp" directory location that the Installer creates on finish,
good catch, Matt!
* This closes at least a part of ticket #4844.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-16 22:19:37 +00:00
Adrien Destugues cd5274c4c0 Update to the ukrainian translation, done by totish. Thanks !
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35501 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-16 21:19:34 +00:00
Ingo Weinhold 1f611c018b 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
2010-02-16 17:22:56 +00:00
Ingo Weinhold 6949076049 * Added some more asserts for cached pages.
* full_scan_inactive_pages(): Fixed syntactical glitch (missing "else").
  Affected only the active paging mode and was relatively harmless. The worst
  case would be that an inactive page would be moved to the cached queue
  although its usage_count hadn't dropped to 0 yet, thus freeing it before
  pages that deserved it more.
* move_page_to_active_or_inactive_queue():
  - Was ignoring the page's modified flag, thus potentially moving a modified
    page to the cached queue. That could happen only in rare cases though,
    like when the page was still mmap()ped while being written and modified and
    unmapped before being done.
  - No longer move the page to the inactive queue, even if its usage count is 0.
    In idle mode the page daemon doesn't look at inactive pages, so the page's
    stats wouldn't be updated anymore.
  - Renamed to move_page_to_appropriate_queue().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35499 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-16 17:12:42 +00:00