Commit Graph

32915 Commits

Author SHA1 Message Date
Axel Dörfler a195cce7b5 * Added a bit more missing info about user_threads.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 19:08:04 +00:00
Ingo Weinhold c062f1a56d Moved the definition of WaitObjectsTreeModel into it's outer class. Ugly, but
pacifies gcc 2.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:37:26 +00:00
Ingo Weinhold 1ff6076985 Added check box to further group the wait objects by name. This allows to
easily see how wait times for similar objects add up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:25:20 +00:00
Ingo Weinhold 2754b722f1 Added ThreadModel::WaitObjectGroup::Object() getter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:17:35 +00:00
Ingo Weinhold 4c06f2b600 Added boolean deleteIfOwning parameter to MakeEmpty().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:17:15 +00:00
Jérôme Duval b1b74111f5 * free buffer on ioctl failures
* monitors /dev/net for added or removed devices and handles events 
	by configuring or unconfiguring interfaces. When plugged a usb 
	network device, it now appears correcly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 15:30:26 +00:00
Axel Dörfler adf9b14ed6 * Applied r34634 to the simple SMP scheduler as well (Rene was right, I just
overlooked it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 15:02:30 +00:00
Ingo Weinhold a5852db3c2 * Moved the ThreadWindow::WaitObjectPage implementation to new class
AbstractWaitObjectsPage and templatized it over model, wait object group,
  and wait object type.
* Replaced the previous MainWindow::WaitObjectPage implementation using
  AbstractWaitObjectsPage.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 12:31:24 +00:00
Adrien Destugues dedd14df43 Added new bulgarian transations done by cssvb94. Thanks again!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 10:58:47 +00:00
Rene Gollent 5c7993bfab Small cleanup: As the cpu_ent struct now tracks the running thread directly, the affine scheduler can use that instead of keeping track internally.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 00:01:33 +00:00
Ingo Weinhold e36d79e9dc CPU selection in enqueue_in_run_queue():
* Moved the CPU selection conde into a separate function.
* Re-added the support for disabling CPUs, which I accidentally removed.
* Got rid of idle CPU tracking. We don't need it anymore -- we iterate
  through all CPUs and check the priority of the running thread.
* Added a kind of round-robin component to the CPU selection loop, so that
  we pick CPUs more evenly. And indeed, the ProcessController display is
  less skewed, now. There doesn't seem to be a measurable performance gain,
  though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 23:28:28 +00:00
Jérôme Duval faf3d7997f the sample rate label is Hz, not kHz.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 22:21:57 +00:00
Ingo Weinhold b4be7c9021 * Added cpu_ent::running_thread which is maintained by the schedulers.
* simple_smp scheduler: Rewrote the interesting part of
  enqueue_in_run_queue(). It always selects a target CPU for the inserted
  thread, now. If no CPU is idle, the CPU running the thread with the lowest
  priority is chosen. If the thread running on the target CPU has a lower
  priority than the inserted one, it will be asked to reschedule. If that's
  the current CPU, we'll return the correct value (wasn't done before at
  all).
  These changes help reducing latencies. On my machine in an idle system
  playing music DebugAnalyzer shows maximum latencies of about 1 us. I still
  find that a bit much, but it's several orders of magnitude better than
  before. The -j8 Haiku image build time dropped about 10%.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 19:06:57 +00:00
Axel Dörfler edc69377fa * Changed the simple scheduler's next thread selection in the same way as the
affine scheduler to avoid possible latency issues.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 17:40:15 +00:00
Ingo Weinhold 59967f764e * buffer_ready_sem was released with B_DO_NOT_RESCHEDULE, but without
returning B_INVOKE_SCHEDULER from the interrupt handler, causing
  latencies up to a full quantum for the multi audio output thread. This
  change improves audio clicks quite a bit on my machine. Though they still
  happen from time to time and particulary on FS activity.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 16:16:44 +00:00
Ingo Weinhold ed4f4fcf8b * Added the thread's ID to its name in the first column and in the tool tip.
* Made the thread name column wider by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 15:38:13 +00:00
Ingo Weinhold 9a76765acb Added context menu item to hide the selected threads and renamed the context
menu items to be more descriptive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 15:23:48 +00:00
Ingo Weinhold d473f5766f Added support for setting the output frequency. Also done some preparation for
setting the input frequency, but I'm too lazy and not interested in the feature
to actually implement it.
For some reason the setting is not persistent. But the other parameters don't
seem to be persistent either, so this is apparently a general problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 12:40:06 +00:00
Ingo Weinhold ec1dcae8cd We have to use dprintf_no_syslog() in the scheduler, as all code is executed
with the threads spinlock held.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 10:25:56 +00:00
Colin Günther 5b7dad76dd Dependency for kernel_c++_structs.h needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-11 08:52:11 +00:00
Axel Dörfler 1e6b39c341 * Patch by Gerald to set a fallback range in case no EDID info was provided.
* This fixes bug #4572.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 23:26:22 +00:00
Colin Günther 2b03fdfe35 * Implementing rman_get_start and copying rman_make_alignment_flags from
FreeBSD 8 (r199625) and thus adding the FreeBSD license header.
* Implementing the glue code to make the wavelanwifi driver linking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 22:04:51 +00:00
Colin Günther 281f1ab86c Choosing an even number for SIOCEND as suggested by François. Thank you.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 20:51:26 +00:00
Colin Günther 89ee864a4c Renamed atheros wlan driver to atheroswifi. This makes it easier to tell apart
the lan atheros813x and the wlan atheros driver.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 20:21:43 +00:00
Ingo Weinhold 35a25fae05 Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 19:10:54 +00:00
Colin Günther 0229a55264 * Adding remaining wlan drivers (FreeBSD RELEASE_8_0_0) to trunk.
Both are compiling, but not linking yet. Only for compilation of pci support
  has been taken care of, as neither ISA nor PCMCIA are usable within Haiku 
  anyway.
* Enhancing the FreeBSD compat layer so that the above drivers are compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:23:38 +00:00
Colin Günther 3d9728baf9 * Changed definition of driver_intr_t to the way it is defined in FreeBSD.
The internal_intr structure needed to be adapted accordingly, otherwise it
  would not compile anymore.
  This definition is needed by the aironet (if_an.c) driver I'm currently
  porting.
* Extending FreeBSD compat layer a bit in preparation of porting the remaining
  wlan drivers. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:16:19 +00:00
Ingo Weinhold 6813f2c744 Debug mode build fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:01:48 +00:00
Ingo Weinhold d363440a49 * Don't lock the audio mixer connection. At least to me it seems handy to play
with it as well.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:00:42 +00:00
Colin Günther b56f3c65ff Add two more socket ioctl's as they are needed by the aironet (if_an.c) and
wavelan (if_wi.c) drivers I'm currently porting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 15:46:37 +00:00
Axel Dörfler 9d6dc833bd * Made sure the tool tip stays on screen without moving itself below the cursor;
I'm afraid there is nothing left of stippi's earlier solution. This fixes
  bug #5097.
* The alignment as specified in the BToolTip is now respected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 14:31:58 +00:00
Ingo Weinhold 3533b6597d * Reintroduced the SMP_MSG_RESCHEDULE_IF_IDLE ICI message. This time
implemented by means of an additional member in cpu_ent.
* Removed thread::keep_scheduled and the related functions. The feature
  wasn't used yet and wouldn't have worked as implemented anyway.
* Resurrected an older, SMP aware version of our simple scheduler and made it
  the default instead of the affine scheduler. The latter is in no state to
  be used yet. It causes enormous latencies (I've seen up to 0.1s) even when
  six or seven CPUs were idle at the same time, totally killing parallelism.
  That's also the reason why a -j8 build was slower than a -j2. This is no
  longer the case. On my machine the -j2 build takes about 10% less time now
  and the -j8 build saves another 20%. The latter is not particularly
  impressive (compared with Linux), but that seems to be due to lock
  contention.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:54:38 +00:00
Ingo Weinhold 10b4833178 When any of the executed timer hooks return B_INVOKE_SCHEDULER, let
timer_interrupt() return B_INVOKE_SCHEDULER. The scheduler itself uses a
timer hook and relies on scheduler_reschedule() to be called. Will make this
even more reliable in the next commit.
This might fix #3535.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:29:38 +00:00
Axel Dörfler 2388f50c53 * The io_handler::handled_count was increased unconditionally, but in some cases
not at all.
* Tried to improve the readability of the "ints" command output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:14:46 +00:00
Colin Günther ccc02f719a * Moved socket ioctls from FreeBSD compat layer into the corresponding Haiku
header. This shall ensure uniqueness of the ioctls.
* Added a special SIOCEND define to Haiku's sockio.h, so that drivers can define
  private ioctls as can be seen in src/add-ons/kernel/drivers/network/wlan/atheros/dev/ath/if_athioctl.h.
* Modified ioccom.h of the FreeBSD compat layer, to make use of the special
  SIOCEND define.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:11:03 +00:00
Axel Dörfler 33c82a30c0 * While reading in a block, the block is now marked busy, and the cache
unlocked, allowing for more parallel access.
* Writing is still done synchronously, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 10:29:37 +00:00
Axel Dörfler d470839990 * The dormant_flavor_info copy constructor was broken, causing bug #5101.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 09:54:59 +00:00
Jérôme Duval 0a8f3c969e update to tzdata2009l
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 23:17:00 +00:00
Siarzhuk Zharski cafbf72df7 VIA VT6122 Gigabit Ethernet driver. Based on FreeBSD vge driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 20:10:39 +00:00
Siarzhuk Zharski 2fa85815f6 Bringing FreeBSD driver to trunk as vt612x.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 20:00:05 +00:00
Siarzhuk Zharski d34d043199 VIA VT6122 NIC driver ported from FreeBSD vge driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:58:44 +00:00
Axel Dörfler 61c915d1f2 * Fixed GCC2 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:21:05 +00:00
Axel Dörfler 4e1e966ad7 * Forgot to check in Beep.cpp. Sorry!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:06:24 +00:00
Ingo Weinhold 183a514eb3 Build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:57:07 +00:00
Ingo Weinhold 1cab99bc10 Apparently someone forgot to commit something. Build fix hack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:56:51 +00:00
Ingo Weinhold e973f15a44 Missing includes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:56:24 +00:00
Clemens Zeidler 5237897801 Check if we have 64 or 32 bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:49:20 +00:00
Axel Dörfler 6cafce94b5 * Moved the port pool into the new request_data.cpp file; it's no longer
accessible from the outside.
* Instead, request_data now retrieves/releases a reply port on its own.
* There were some more places that still used write_port()/read_port() instead
  of QueryServer().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:40:45 +00:00
Axel Dörfler e4c87231a3 * Renamed the xfer_* structures to fit the rest, and let them inherit from the
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
  duplicating them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:17:01 +00:00
Clemens Zeidler 3875331b37 As suggested by Ingo use the normal mutex_lock function in case of ACPI_WAIT_FOREVER.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:14:14 +00:00