Commit Graph

33102 Commits

Author SHA1 Message Date
Ingo Weinhold 9704a425ea When pre-loading stuff, we must not access gProgramImage unchecked.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-28 00:02:54 +00:00
Ingo Weinhold eb8dc1ebfb * Removed DEBUG_PAGE_CACHE_TRANSITIONS debugging.
* Added VMCache::MovePage() and MoveAllPages() to move pages between caches.
* VMAnonymousCache:
  - _MergeSwapPages(): Avoid doing anything, if neither cache has swapped out
    pages.
  - _MergeSwapPages() does now also remove source cache pages that are
    shadowed by consumer swap pages. This allows us to call _MergeSwapPages()
    before _MergePagesSmallerSource(), save the swap page shadowing check
    there and get rid of the vm_page::merge_swap flag. This is an
    optimization based on the assumption that usually none or only few pages
    are swapped out, so we save a lot of checks.
  - Implemented _MergePagesSmallerConsumer() as an alternative to
    _MergePagesSmallerSource(). The former is used when the source cache has
    more pages than the consumer cache. It iterates over the consumer cache's
    pages, moves them to the source and finally moves all pages back to the
    consumer. The final move is relatively cheap (though unfortunately we
    still have to update all pages' vm_page::cache field), so that overall we
    save iterations of the main loop with the more expensive checks.

The optimizations particularly improve the common fork()+exec*() situations.
fork() uses CoW, which is implemented by putting two new empty caches between
the to be copied area and its cache. exec*() destroys one copy of the area,
its cache and thus causes merging of the other new cache with the old cache.
Since this usually happens in a very short time, the old cache does still
contain many pages and the new cache only few. Previously the many pages were
all checked and moved individually. Now we do that for the few pages instead.

A very extreme example of this situation is the Haiku image build. jam has a
huge heap (> 200 MB) and it fork()s+exec*()s for every action to be executed.
Since during the cache merging the cache is locked, any write access to a
heap page causes jam to block until the cache merging is done. Formerly that
took so long that it killed a lot of parallelism in multi-job builds. That
could be observed particularly well when lots of small actions where executed
(like the Link, XRes, Mimeset, SetType, SetVersion combos when building
executables/libraries/add-ons). Those look dramatically better now.
The overall speed improvement for a -j8 image build on my machine is only
about 15%, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-27 16:14:13 +00:00
Ingo Weinhold 6afe50d424 * Added assignment operators.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34783 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-27 15:19:17 +00:00
Scott McCreary cd9c31cc1a added sed to DevelopmentBase, seemed to be the place it best fit in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34782 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-27 08:58:50 +00:00
Scott McCreary 96b1978dc5 Updated neon to 0.29.1 and fixed symlinks in bzip2 package.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-27 03:30:44 +00:00
Colin Günther aa50f74f12 Adding patch by mmadia, which allows installation of firmware for the
Intel Pro Wireless 2100 and 2200/2945 chipsets in a license correct manner.
Thank you!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-27 00:13:08 +00:00
Ingo Weinhold c2d5972b6a Moved merging swap pages from Merge() to a separate method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-26 21:05:38 +00:00
Ingo Weinhold 4566a632c6 * Some style cleanup.
* Pulled the code moving the pages out of Merge() into a separate method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-26 21:00:02 +00:00
Adrien Destugues 5458cdeaf5 Fixed OpenGL preflet, I missed an important part of its internationalization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-26 19:49:54 +00:00
Oliver Ruiz Dorantes 1f37b29b5d CheckStyled
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 18:46:53 +00:00
Oliver Ruiz Dorantes 4b68462fe1 CheckStyled
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34775 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 18:09:17 +00:00
Oliver Ruiz Dorantes 17836d5ed0 Place all Device's feature strings left aligned
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 17:51:37 +00:00
Ingo Weinhold f627a56a9b Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 13:10:52 +00:00
Ingo Weinhold c5154d568f Changed hopefully all remaining GUI strings to sentence case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 12:46:24 +00:00
Ingo Weinhold 579be822bb Applied patch by Humdinger (#5169): Changed GUI strings to sentence case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 12:40:53 +00:00
Ingo Weinhold ade3a199a6 Already assigned the IOScheduler's ID in the constructor and use it in the
names of its threads.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-25 11:46:15 +00:00
Adrien Destugues f60c232ee4 I missed this catkey fix in my previous commit. Sorry!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 17:22:55 +00:00
Adrien Destugues 0b2fbbfaa9 Patch by Humdinger to convert all the preference panels to sentance case.
Also update the localization catalogs as needed.
CPUFrequency localization is broken : the current code works, but the DoCatalogs jamrule is not powerful enough to properly extract the catkeys.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 15:31:00 +00:00
Adrien Destugues 213a7c81d0 Internationalize OpenGL preferences
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 14:24:56 +00:00
Adrien Destugues ea054b6a1a Fix cpufrequency again : actually StatusView is used both in the add-on and standalone, so it must be able to work in both ways. The macro are then unuseable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 12:19:18 +00:00
Colin Günther b1c3d835a4 Adapting build files, so that they reflect the new location of the ipw2100
driver.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 11:55:16 +00:00
Colin Günther 5d6c2e8bc6 Moving the native Intel Pro Wireless 2100 driver into the wlan directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 11:52:03 +00:00
Adrien Destugues b6cb7d4779 MacDecorator: only formatting changes
WinDecorator:
 * Now compilable
 * Windows are drawing properly
 * The window title is still missing for some reason


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-24 11:25:28 +00:00
Adrien Destugues 2eef77bfda MacDecorator : fix a liitle drawing bug (missing border under window tab) and make resizing work.
I see no other bug now, but testing welcome.

You can change the decorator using the setdecor command, but you have to add MacDecorator in /home/config/add-ons/decorators first.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 21:25:42 +00:00
Adrien Destugues 31aac46f89 MacDecorator :
-Draw the text in the titlebar
-Fix the buttons (they now are shaded like the DefaultDecorator one, that is, better than in original Mac OS)
-Draw the decorator all grey with no buttons when not focused
-Fix the border

There are some minor bugs left, but basically the decorator is now usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 20:31:40 +00:00
Ingo Weinhold e5d95b9ded Also add I/O related info to the tool tip.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 17:04:07 +00:00
Ingo Weinhold f0a592fd22 Added IOOperation and IORequest accessors and support methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 17:03:26 +00:00
Scott McCreary 579f5ff88f Updated automake to 1.11.1
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 16:43:51 +00:00
Adrien Destugues 541987c85d MacDecorator:
- Style cleanup and sync with DefaultDecorator to some extent
- Don't draw a titlebar and border around menus
- Allow the client to draw something inside the window by returning the correct BRegion. (still not perfect, but it is useable, at least)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 15:18:40 +00:00
Adrien Destugues e71b48d3c1 -Patch by mt to fix appearance catalogs generation problems. Thanks!
-Re-enable and update Appearance preflet translations after sentence case conversion done by Humdinger.
-This closes #5165


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 11:39:04 +00:00
Adrien Destugues b83b202d4d - BeDecorator synced to DefaultDecorator code (mostly style changes) and fixed for correct font rendering.
- Mac Decorator still not working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-23 11:07:17 +00:00
Adrien Destugues facf61e75c Bring the MacDecorator to compileable and runnable state. I advise you not to use it yet, however.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 22:50:39 +00:00
Ingo Weinhold e0578cf89f Copy and paste left-over. Should fix the m68k build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 22:01:55 +00:00
Ingo Weinhold 2e74d74f4f * Added method VMCache::TransferAreas() moving areas from one cache to
another. The code originates from vm_copy_on_write_area(). We now generate
  the VM cache tracing entries, though.
* count_writable_areas() -> VMCache::CountWritableAreas()
* Added debugger command "cache_stack" which is enabled when VM cache tracing
  is enabled. It prints the source caches of a given cache or area at the
  time of a specified tracing entry.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 22:00:35 +00:00
Adrien Destugues ff48991114 BeDecorator works again :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 21:33:41 +00:00
Adrien Destugues 4550f38949 -Bring BeDecorator back at a compilable state
-Some updates to the DecoratorManager to try to make it working. The add-on is not identified properly but I can't find out why...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 21:06:58 +00:00
Colin Günther cfcee452a4 Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:53:28 +00:00
Colin Günther b7dbc3795f Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:48:32 +00:00
Colin Günther 1614c41230 Enabling C++ structs is required for jmicron2x0 to make it compile when
kernel_c++_structs.h wasn't assembled previously.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:45:56 +00:00
Colin Günther dc6a91927a Removed superflous include directories from Jamfile and added a newline at end
of file. No functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:42:35 +00:00
Colin Günther 0286a8a758 Some modifications to the glue.c file to make the jmicron2x0 driver linkable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:25:51 +00:00
Colin Günther a9887eb1c8 Modifictation of Jamfiles, so that jmicron2x0 driver is compileable now. Though
it does not link, yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:16:07 +00:00
Ingo Weinhold a38f850360 * arch_debug_get_stack_trace():
- Replaced the "userOnly" parameter by a "flags" parameter, that allows to
    specify kernel and userland stack traces individually.
  - x86, m68k: Don't always skip the first frame as that prevents the caller
    from being able to record its own address.
* capture_tracing_stack_trace(): Replaced the "userOnly" parameter by
  "kernelOnly", since one is probably always interested in the kernel stack
  trace, but might not want the userland stack trace.
* Added stack trace support for VM cache kernel tracing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 15:15:07 +00:00
Ingo Weinhold 42f2c2d099 Added TODO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 15:02:35 +00:00
Adrien Destugues c48d1db6ff Disable catalogs for appearance until someone finds why the en.catkeys doesn't get built.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 11:36:40 +00:00
Ingo Weinhold d580f81a2b Also visualize I/O activity.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-21 21:06:56 +00:00
Ingo Weinhold 934a8d0113 * Model: Added class IOScheduler, a list of IOSchedulers, and a methods to
access it.
* ModelLoader:
  - Also add IOSchedulers to the model.
  - Sort the per thread list of IORequests by start time.
  - Added a bit of output in the _HandleIO*() methods when we don't know a
    request or operation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-21 21:05:36 +00:00
Ingo Weinhold 1c12dcb598 IOSchedulerRoster:
* Lock the notification service and check HasListeners(), so we don't prepare
  an event message needlessly.
* The on-stack buffer for the event message was too small for I/O operation
  related events. Now a larger buffer belonging to the roster object is used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-21 21:00:21 +00:00
Ingo Weinhold 1fde952c1d DefaultNotificationService:
* Added Lock()/Unlock() for explicit locking by a service user.
* Added NotifyLocked() and made Notify() inline.
* Added HasListeners() so one can check whether there is a listener at all
  before preparing the event message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-21 20:56:50 +00:00
Adrien Destugues 25037a6c06 Fix cpufrequency catalogs build and update them.
This clean up the add-on from hand-made translation mess.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-21 19:59:13 +00:00