Commit Graph

32934 Commits

Author SHA1 Message Date
Fredrik Holmqvist 5e972c0f3d Implemented TODO about not loading symbols at boot.
This saves ~0.5s of boot time here, but I suspect it might be better for CD.
Enabled loadSymbols in kernel settings so the behavior should be the same as before this change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 15:55:16 +00:00
David McPaul 5868901fda Activate some test code to use large constant chunk sizes instead of small mp3 frame sizes. Improves I/O
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 12:08:36 +00:00
Ingo Weinhold 4673f145a3 * stream_handle_interrupt(): Fixed a misunderstanding of the SDnLPIB (stream
descriptor n link position in buffer) registers. They contain "the number
  of bytes that have been received off the link", which is not to be confused
  with the number of bytes that have been transferred by the DMA engine.
  The interrupt is triggered when the last byte of the buffer has been fetched
  by the DMA engine, at which point the stream's LPIB is still somewhere in
  the last buffer. So the interrupt handler could compute the wrong buffer
  index, which would lead to the multi audio add-on filling the wrong
  (currently being transferred) buffer, resulting in noisy sound. Now we use
  the DMA position. Should fix #4072.
* Also removed the not (always) working hack-around for the "wrong" buffer
  positions in the interrupt handler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 00:21:43 +00:00
Colin Günther bfe69c5264 * The ralinkwifi driver links now.
* There is firmware needed, which can be distributed with Haiku:
  a) Get the firmware from www.ralinktech.com -> Software -> Linux
     -> Firmware RT2501(RT2561/RT2661)
  b) Extract the three binaries to /system/data/firmware/ralinkwifi/
  c) Rename them by removing the '.bin' ending and append fw instead
     (e.g.: rt2561.bin -> rt2561fw)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 23:00:33 +00:00
Colin Günther b4f369b8a5 * Removed superflous header inclusion statement.
* Also note: the firmware needs to be installed in /system/data/firmware/marvell88w8335
  and not malo8335 as I stated in commit r34661.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 15:56:28 +00:00
Colin Günther e863cb774a * The marvell88w8335 links now, too.
* This driver requires a firmware, which is not publicly available, and
  therefor cannot distributed with Haiku. To retrieve and install the firmware
  nonetheless following steps are required:
  a) Download the firmware from http://www.nazgul.ch/malo/malo-firmware-1.4.tgz
  b) Copy the included firmware files malo8335-h and malo8335-m to /system/data/firmware/malo8335/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 15:38:01 +00:00
Axel Dörfler 5503097733 * Also show the tool tip in case there is no monitor info, but still info about
the device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 08:44:39 +00:00
Axel Dörfler 61c5c89b6d * Added info about the graphics device as suggested in #5112. However, it's
currently only shown in the monitor tool tip, that is now feels a bit crowded,
  so a better solution would be nice. I'm hesitant to give it a more prominent
  position, though, unless one has proof-read what the accelerants actually
  return here.
* Added missing space between the serial number of the monitor and the date it
  has been produced.
* Renamed fTempScreenMode to fUndoScreenMode, as it's only used to deliver that
  functionality.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 08:08:57 +00:00
Jérôme Duval 996953e91c use directly AcpiReset() for acpi reboot
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 23:01:28 +00:00
Ingo Weinhold 0338371f26 * All scheduler implementations:
- enqueue_in_run_queue() no longer returns whether rescheduling is supposed
    to happen. Instead is sets cpu_ent::invoke_scheduler on the current CPU.
  - reschedule() does now handle cpu_ent::invoke_scheduler_if_idle(). No need
    to let all callers do that.
* thread_unblock[_locked]() no longer return whether rescheduling is supposed
  to happen.
* Got rid of the B_INVOKE_SCHEDULER handling. The interrupt hooks really
  can't know, when it makes sense to reschedule or not.
* Introduced scheduler_reschedule_if_necessary[_locked]() functions for
  checking+invoking the scheduler.
* Some semaphore functions (e.g. delete_sem()) invoke the scheduler now, if
  they wake up anything with greater priority.
  I've also tried to add scheduler invocations in the condition variable and
  mutex/rw_lock code, but that actually has a negative impact on performance,
  probably because it causes too much ping-ponging between threads when
  multiple locking primitives are involved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 21:18:27 +00:00
Ingo Weinhold 89e87505cf Improved panic() message.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 21:03:48 +00:00
Ingo Weinhold 2f7eb9b546 Fixed a stupid race condition between IORequest finishing and
IORequest::Wait(). Wait() immediately returned when IsFinished() returned
true, but this is the case as soon as the last IOOperation has finished. The
I/O scheduler is not done with the request at this point, though, since it
will still be sitting in at least one of three doubly linked lists. Since the
usual procedure to issue synchronous I/O requests is to create an IORequest
on the stack, pass it to the I/O scheduler, and Wait() on it, Wait()
returning early might cause the IORequest object to be destroyed while it is
still in use, leading to invalid memory access in the I/O scheduler,
corruption of its list structures, as well as later corruption of the issuing
thread's stack.
Related tickets:
* #4431: The request issuing thread returned and already deleted the area the
  request was writing to before NotifyFinished() was called.
* #3048, #4883: Caused by the on stack IORequest being overwritten with other
  data while being handled by the I/O scheduler thread.
* #4517: Hard to say, but I've seen a such a problem too, after a thread
  scheduling related change. An explanation would be a list structure
  corruption in the I/O scheduler causing an infinite loop with disabled
  interrupts.
* #2845, #3428, #3429: The block notifier/writer is I/O heavy and as such
  quite likely to run into the stack corruption issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 19:28:33 +00:00
Jérôme Duval fe69204315 added more missing prototypes in math.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 16:35:25 +00:00
Jérôme Duval 0270440a97 added missing prototypes for fmin, fma, fmax functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 16:22:56 +00:00
Jérôme Duval d0c1951713 added fmin, fma, fmax from glibc (ticket #5114).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 14:22:13 +00:00
Jérôme Duval 63a275889b gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 13:28:28 +00:00
David McPaul 2a9896ce47 switch to use STL containers, limit to 10 cache entries, don't clear cache on findkeyframe, removed inflight list as it was not needed, report error conditions better. This makes video work again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 12:09:17 +00:00
Jérôme Duval 42ee486389 Use B_OP_OVER instead of B_OP_COPY on Haiku (bug #4815)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 00:23:07 +00:00
Jérôme Duval 0b604ab644 Some simplifications (thanks Axel):
* Don't watch for moved entries
* Ask the network stack to delete the named interface 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 20:22:10 +00:00
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