Commit Graph

33151 Commits

Author SHA1 Message Date
Ingo Weinhold
9c3ad4fbb0 * Use TimeComputer to get smoother performance times.
* SetParameterValue(): Don't do anything, if the new output frequency value
  is the same as before. This avoids hickups when switching between the pages
  in the Media preflet.
* _FillNextBuffer(): Compare BBuffer and stream buffer size. They might
  differ directly after setting another output frequency, which could cause
  a crash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:13:14 +00:00
Ingo Weinhold
cb00754227 Added support class TimeComputer to compute smoother performance times.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:04:58 +00:00
Axel Dörfler
7d592ec4d2 * Fixed the bug that led to #5119. There was a race condition in the read path
as soon as a second thread got into the game: if a thread was notified that
  a message is ready, another thread could call read_port() and steal it before
  the previous thread could claim it. The "Extensions" menu still doesn't seem
  to work, but I would guess that is unrelated.
* The threads of the test app never exited, as read_port() returns the number
  of bytes it read, not just a status.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 12:51:26 +00:00
Axel Dörfler
697255873e * Added test that has multiple readers on a single port, and that drops into the
same panic as #5119.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 11:45:45 +00:00
Fredrik Holmqvist
118fa8936e Make sure settings isn't null. Not my finest day apparently.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 22:19:08 +00:00
Fredrik Holmqvist
0f6b7a8cad Unload driver settings as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 22:05:45 +00:00
Stephan Aßmus
0d61e4883f Updated the TypeMatrix 2030 keyboard layout to show the leds (the real one has
one more led, though), and the keys to be darker. I took this from the current
layout at the order page. The image on the main website is out of date. The
layout apparently was already up2date.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 21:03:29 +00:00
Stephan Aßmus
53ed733a36 Patch by Humdinger:
Renamed OpenTerminal to Open Terminal, since it sounds much more like a phrase
than a label for an add-on. Fixes #4434.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:46:49 +00:00
Siarzhuk Zharski
97df980335 Add vt612x NIC driver (VIA VT6122) into trunk HaikuImage.
This driver was confirmed as working stable for a week by Algirdas Buckus.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:25:07 +00:00
Siarzhuk Zharski
bfd856102c - Lithuanian (Baltic) keymap correctd;
- Lithuanian Standard and Ergonomic keymaps added;

Patch by Algirdas Buckus. Thank you!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:19:56 +00:00
Ingo Weinhold
37e514b64c Fixed unintended operator precedence.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:41:08 +00:00
Ingo Weinhold
3a58749c5d Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:39:04 +00:00
Ingo Weinhold
e0a187dd59 * stream_handle_interrupt():
- Round the DMA position for the buffer cycle computation. Apparently some
    chipsets trigger the interrupt before the position has been updated.
  - Don't just assume that stream->buffer_length frames have been processed
    at that time. Use the exact stream position at that time. This makes the
    performance time computation more precise and immune to the interrupt
    being delayed.
* Init hda_stream::frames_count.

Audio skips on I/O seem to be gone for me, now. Not obviously motivated skips
still happen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:38:00 +00:00
Ingo Weinhold
cd803f23e1 * Disabled tracing.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:21:04 +00:00
Axel Dörfler
f8288ec75c * Made sure the sockaddr::sa_len field is set correctly for sendto(), and
connect().
* This fixes not working connections whenever the incoming sa_len field happened
  to be zero.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 17:40:14 +00:00
Fredrik Holmqvist
d403ff624f Style fix:
* static variables should start with s.
 * function blocks should start on new line.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 17:00:03 +00:00
Fredrik Holmqvist
7afaadfbb7 If we get a overflow read the data.
This probably fixes #2801 and is what the FreeBSD driver does.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 16:46:44 +00:00
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