66417 Commits

Author SHA1 Message Date
Augustin Cavalier
382f18110f DebugAnalyzer: Fix scrollbars in the scheduling view.
It's scroll-view-aware.
2024-08-09 17:09:49 -04:00
Augustin Cavalier
27462aa0c7 virtio_net: Received length includes net_hdr length.
This wasn't noticed until now because the IPv4 module would just
truncate packets to their actual length, but the extra data would
appear in packet captures.
hrev57943
2024-08-08 21:16:13 -04:00
Augustin Cavalier
e3e02efb63 device_manager: Only scan busses/scsi in the default case for virtio.
Otherwise we load and unload the SCSI module thousands of times,
which is expensive. It was only added to this section for virtio
in d3b108c53d151d7c0aab32c1562bca355462868b, so avoid scanning
it here except in that case.

Confirmed that virtio_scsi still works as a boot device.

While at it, remove an unused get_attr.

Change-Id: I0882fcb3465809d6bcdd8ed45e66a4dbfe91f7ac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7965
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57942
2024-08-09 00:42:25 +00:00
Augustin Cavalier
b134a498f6 kernel/vm: The kernel can transfer any area.
Necessary to get the system profiler to work properly.

Change-Id: Id9c1a0bedaef18680361c5de449d293ff053940c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7964
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-08-09 00:42:25 +00:00
Augustin Cavalier
686e891cd2 system_profiler: Add a mode for scheduling_recorder -r like profile -r.
And add the necessary logic in scheduling_recorder. This way we can
track scheduling profiling during the boot process.

Also remove B_SYSTEM_PROFILER_IO_SCHEDULING_EVENTS as it can't be
activated this early in the boot process.

Change-Id: If32f9b5d61c8cd2b3b36a4e6f8065301abd46149
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7963
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-08-09 00:42:25 +00:00
Máximo Castañeda
2ef4221668 Input server: add some mouse settings checks
Workarounds broken settings as in #18973.

Change-Id: I9723cba7fc46ab624da54ebaf3e6e9e1fa547d66
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7962
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57941
2024-08-08 22:35:46 +00:00
Pascal Abresch
450de6e95f Appearence: Fix control background color in automatic colors dark mode.
Change-Id: I845f65ea811820ef27874d30782100bb5d175419
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7959
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57940
2024-08-08 20:59:46 +00:00
X512
e2c588b594 build: put each image build target to separate line
It helps to simplify to view difference and apply patches.

No functional changes.

Change-Id: Ia29368eceaeb3306990c09da77c4527eff87c72a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7932
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57939
2024-08-08 16:21:35 +00:00
Augustin Cavalier
5ee32555f1 freebsd_network: Use the correct buffer length in receive.
Should fix #18966.

Change-Id: I05e35ecbdc4c269501980c18cedfc69d99618ae6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7961
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit 813c5e2fdee3d506a77a7b265a227ef6f68c4ab8)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7976
hrev57938
2024-08-08 16:11:52 +00:00
Augustin Cavalier
a1d79e238e Versioning: Add BETA_5 and PRE_BETA_6 version constants.
* PRE_BETA_6 is now the default in master.
hrev57937
2024-08-08 10:42:41 -04:00
Augustin Cavalier
de1f1b5de5 BColumnListView: Use make_color for GCC2 compatibility. hrev57936 2024-08-07 23:07:12 -04:00
Augustin Cavalier
dbc6b2061e kernel/timer: Reset the hardware timer on every cancellation.
This reverts c5a499a74b7a3516451337373e455bb2aba00ace
(except for the style fixes in that commit.)

See inline comment. Even after the fix to realtime events,
it seems there are still some lingering bugs causing freezes
on some systems. For now, remove the check again.
2024-08-07 23:03:04 -04:00
Augustin Cavalier
efc43c5270 mixer: Add initialization to appease GCC2. hrev57935 2024-08-07 21:25:52 -04:00
Pascal Abresch
e86b891320 ResEdit: fix rendering in Dark mode
Change-Id: I70d14750e1d695ab6448d066d94065357ee75ada
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7957
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57934
2024-08-08 01:17:02 +00:00
Pascal Abresch
c3f534848d IK: ColumnListView: Draw the expander box in dark mode
Change-Id: I83ff1de98a12527a6c5ede0940c1c95cb1adf1dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7956
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-08-08 01:17:02 +00:00
Pascal Abresch
65de39a14b WebPositive: fix close tab button in dark mode
Change-Id: Id133626247b8a763d8befd87cc8db0a7048d1218
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7935
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-08-08 01:17:02 +00:00
Pascal Abresch
d404a2f036 IK: ColumnListView dark mode fix
Change-Id: I19c4ad3f617b6fb9db15a4e8f0a9bae459f61e97
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7934
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57933
2024-08-08 01:16:43 +00:00
Augustin Cavalier
32bdd3c01d freebsd_network: After freeing the bounce buffer, clear its size.
Otherwise the check just above will succeed incorrectly in cases where
we failed to allocate a buffer (possibly due to the instructions not
to wait.)
hrev57932
2024-08-07 21:04:32 -04:00
Augustin Cavalier
7cb6c1c23f freebsd_network: Correct handling of dmamem allocation flags.
_prepare_bounce_buffer also calls _allocate_dmamem and needs to have
the passed BUS_* flags handled properly, so just move the handling
to _allocate_dmamem directly.
2024-08-07 21:03:16 -04:00
Augustin Cavalier
58137a628d multi_audio: Fix logging print.
The value is really "lateness" not "how_early".
hrev57931
2024-08-07 20:45:13 -04:00
Augustin Cavalier
1513e5484e mixer: Allow stopping the mixer before it's even been started. hrev57930 2024-08-07 20:44:06 -04:00
Augustin Cavalier
1352dfe46a mixer: Don't stop the mixer in Disconnect().
The logic in the mixer will automatically stop the mix thread but
leave the "Started" flag set in this case.

While at it, clean up that logic.

This suffices to get the mixer to connect and disconnect from
the same output, at least, and have audio output still work.
2024-08-07 20:44:06 -04:00
Augustin Cavalier
424086eeef multi_audio: Tolerate played_real_time less than TimeComputer's RealTime.
See inline comment. As we initialize the TimeComputer with the current
system_time(), if the driver reports the played_real_time of its last
buffer exchange (which, if we're restarting media_server, could be
non-zero), we need to just ignore it.

Fixes assertion failures when using usb_audio. And now that we have
this check in here, we can remove the assert from TimeComputer.

Also add a cast in _GetControlName to appease GCC2 while at it.
2024-08-07 20:44:06 -04:00
Augustin Cavalier
940d017a2f mixer: Just use absolute timeouts rather than "scheduling" runs.
Also refactor the logic to not need goto.

The previous design (from 2016) generated an event and wrote to the
control port to queue it, and then the control thread woke up our
semaphore at the appointed time. Rather than have this inefficency,
just use a timeout to the acquire_sem (which is more similar to the
pre-2016 design.)

This should not affect mixer behavior (as we wait for buffers
inside this logic already), it should only reduce the latency
of actual mixer runs.
2024-08-07 20:44:06 -04:00
Augustin Cavalier
a21e32ecc5 mixer: Basic cleanup.
* Remove ERROR differences on DEBUG vs. non-DEBUG.

 * Cleanup checks.
2024-08-07 20:44:06 -04:00
John Scipione
de483e1765 Libpackage: Add HOST_LIBSUPC++ to libpackage and solver
(This is needed to cross-compile on macOS.)

Change-Id: I2b0186e2a9ac09fc332a43808d55fcb2d5ebc86b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7933
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
hrev57929
2024-08-07 20:17:44 +00:00
Augustin Cavalier
9d694bc9eb multi_audio: Guard against overreads in _GetControlName.
May fix a crash X512 reported.
hrev57928
2024-08-07 14:52:07 -04:00
Augustin Cavalier
fe5fc031dd profile: Report dropped events from the system profiler.
Otherwise there is no indication how many were dropped.
2024-08-07 14:51:38 -04:00
Augustin Cavalier
37201dc1df sdhci_pci: Disable tracing.
Reduces syslog spam. It was already disabled for sdhci_acpi.
hrev57927
2024-08-07 14:50:19 -04:00
Augustin Cavalier
bd05c92198 kernel: Check != not < B_INFINITE_TIMEOUT.
As it's INT64_MAX, so anything "larger" is really overflowed into negative.
2024-08-07 14:49:48 -04:00
Augustin Cavalier
4d2ab928c6 OS.h: Define B_INFINITE_TIMEOUT in hexadecimal.
Makes it clearer that this is INT64_MAX at a glance.
No functional change.
2024-08-07 14:49:05 -04:00
Augustin Cavalier
424abd4d57 BClipboard: Don't wait forever for a clipboard download.
Time out after waiting at most for 10 seconds. After 81e50deecea7,
this should only happen when the registrar succeeds in sending the
message but we fail in receiving it for whatever reason, so really
this is just a guard against infinite hangs.
hrev57926
2024-08-07 14:45:48 -04:00
Augustin Cavalier
7c4915c1e6 ramfs: Also set type and flags in ramfs_get_vnode.
Necessary for proper functioning after the vnodes were purged
and then re-created on the VFS side.
hrev57925
2024-08-07 14:42:49 -04:00
Augustin Cavalier
b6d006ca91 kernel/fs: Initialize type/flags before invoking get_vnode.
Otherwise, if the filesystem doesn't set them, we will have garbage
values and act wrongly.

This fixes the second KDL and the underlying cause of #18838:
when the system gets into a low memory state, VFS purges unused vnodes.
But of course RAMFS keeps those nodes around. When the VFS went to
retrieve the nodes for reuse, the flags would sometimes randomly
have the "removed" flag set, and the VFS would then try to delete
the node. But of course it wasn't really removed, so we would hit
an assertion failure in RAMFS.
2024-08-07 14:42:15 -04:00
Augustin Cavalier
00908dbb0f ramfs: Minor code cleanup. 2024-08-07 14:38:27 -04:00
Augustin Cavalier
70f7a613af ramfs: Style cleanup in Node.
No functional change.
2024-08-07 11:45:40 -04:00
Augustin Cavalier
420c9a5a44 ramfs: Use check_access_permissions in Node.
This does check owning groups properly.
2024-08-07 11:45:22 -04:00
Augustin Cavalier
43feec0105 ramfs: Use VM_PRIORITY_USER not VM_PRIORITY_SYSTEM.
This way, allocation failures on ramfs have a chance of
not bringing down the whole system with them.
hrev57924
2024-08-06 18:42:22 -04:00
Augustin Cavalier
81e50deece registrar: Handle clipboard download messages failing to send.
The sender is waiting for a reply, so if the reply fails to send
the target will hang forever. Send back an error in that case.

Should fix hangs of Tracker and Deskbar under low memory conditions
with a very large clipboard.
2024-08-06 18:42:05 -04:00
Augustin Cavalier
ab262541db kernel/user_debugger: Check the debugged team ID properly.
If it's B_CURRENT_TEAM we need to fetch the real ID before doing
the check.
2024-08-06 18:14:10 -04:00
Augustin Cavalier
c4eef57349 mixer: Fix TRACE in delay starting of the mixer.
Thanks jmairboeck for the review!
2024-08-06 16:41:17 -04:00
Augustin Cavalier
104a4a7cfc packagefs: Improve errors and print a message when failing to add a package node...
... due to conflicts in the node type.

This allows for better diagnosing #18591.
hrev57923
2024-08-06 16:36:12 -04:00
Augustin Cavalier
9c8a78e8ca kernel/timer: Remove another volatile.
Previously missed.
hrev57922
2024-08-06 14:11:20 -04:00
Augustin Cavalier
eca25eef72 packagefs: Assert that the directory is locked when adding children. 2024-08-06 14:11:00 -04:00
Augustin Cavalier
39fc954151 packagefs: Ensure the root directory is locked when creating shine-throughs.
Found by the ASSERT added in the following commit.
2024-08-06 14:10:44 -04:00
Augustin Cavalier
8f4ba40520 tcp_shell: Fix following latest changes. hrev57921 2024-08-05 23:55:20 -04:00
Augustin Cavalier
a51aed0242 Zydis: Handle OPERAND_TYPE_REGISTER in ZydisCalcAbsoluteAddressEx.
Fixes "Step over" in Debugger following the switch to Zydis.
hrev57920
2024-08-05 23:50:31 -04:00
Augustin Cavalier
517fca7da7 BTimeSource: Protect against values too large to fit in a float.
This can only happen if the real time or performance time values
specified are very large (more than 24 bits), which should only
happen if the time specified is system_time() and the "last" time
is 0. Under that circumstance, last_drift should be 1.0f,
so we can avoid using it at all. Otherwise, invoke debugger().

This would have caught some (but not all) of the problems fixed
in preceding commits.
hrev57919
2024-08-05 23:33:34 -04:00
Augustin Cavalier
eb3126cba7 mixer: Delay starting until we have a valid time source.
BTimeSource::Now() uses the current real time to compute the
performance time, so if the performance time and last real time
are 0 in the time source data, we get a positive value that is
the same as the system time. That means we wind up waiting
a while to start the mixer unnecessarily, often equal to the
current system_time() when the mixer was started.

So, rather than checking the computed Now(), we instead check the
raw performance and real time values from the time source, and
wait for those to be valid before starting.

Also remove a comment about the BeOS R5 multi_audio node. It seems
that ours generates valid time values more quickly, but still starts
off with performance and real times of 0 (which are the default in
the time source anyway.) The new code would still work under such
broken nodes regardless.

This seems to fix sound output taking a long time to start after boot
(or even longer after restarting media services.)
2024-08-05 23:29:20 -04:00
Augustin Cavalier
b5142f7645 multi_audio: Add assertion in TimeComputer that realTime didn't go backwards.
Would have caught the problem fixed in the previous commit.
2024-08-05 23:24:06 -04:00