Date: July 26, 2024
Version: F21
The following changes have been implemented:
Bluetooth
The following updates have been made for Bluetooth:
- Significant progress was made toward migrating the Bluetooth stack to DFv2
and modernizing its APIs:
- The
bt-hci-intel
,bt-fct-hci
, andbt-hci-passthrough
drivers were migrated to DFv2 and the newHciTransport
protocol.- Changes: fxr/1061013, fxr/1058362, fxr/1059206
- The
fuchsia.hardware.bluetooth.VirtualController
,fuchsia.hardware.bluetooth.Peer
, andfuchsia.hardware.bluetooth.Emulator
APIs were modernized.- Changes: fxr/1065912, fxr/1059193, fxr/1058236
- Modernized the
fuchsia.bluetooth.snoop
FIDL API.- Changes: fxr/1011612
- Bugs: fxb/42176826
- The
- Improved Bluetooth functionality and reliability:
- Implemented the
AudioOffloadController.Stop
method and thebredr.Connection
protocol.- Changes: fxr/1061592, fxr/1068092
- Added support for setting the LE connection role in the fake controller and
fixed a crash in
BrEdrDynamicChannel
.- Changes: fxr/1066752, fxr/1068313
- Implemented
IsoStreamServer
.- Changes: fxr/987032
- Implemented the
- Enhanced Bluetooth testing and development:
- All
bt-host
Bazel unit tests were combined into one package to speed up Fuchsia Bazel builds.- Changes: fxr/1070483
- Implemented the
HciTransport
API inEmulatorDevice
.- Changes: fxr/1066016
- All
Developer
The following updates have been made for Developer:
ffx
- Improved the usability and reliability of various
ffx
commands:- Enhanced error reporting for
ffx repository add-from-pm
andffx target show
.- Changes: fxr/1063112, fxr/1063877
- Fixed issues with
ffx component doctor
andffx starnix adb
.- Changes: fxr/1059479, fxr/1058652
- Improved reconnect logic and error handling.
- Changes: fxr/1067192, fxr/1069094, fxr/1067973
- Bugs: b/347898930
- Migrated
ffx target wait
to be daemonless.- Changes: fxr/1061752
- Added new
ffx
commands and options:- Introduced commands for fxfs profile management (
stop_profile
anddelete_profile
).- Changes: fxr/1048255, fxr/1064553
- Added the
--undigested
flag toffx profile memory
.- Changes: fxr/1067193
- Introduced commands for fxfs profile management (
- Enhanced error reporting for
- Cleaned up output and logging for several
ffx
commands.- Changes: fxr/1003640, fxr/1060994, fxr/1060996, fxr/1060723, fxr/1060813, fxr/1060377, fxr/1060116
- Undigested memory profiling: The
--undigested
flag inffx profile memory
now displays only undigested memory.- Changes: fxr/1067193
Component Framework
The following updates have been made for Component Framework:
- Stability enhancements:
- Fixed a race condition when opening a service directory.
- Changes: fxr/1067303
- Removed dead code related to component events.
- Changes: fxr/1067492
- Bugs: fxb/347752627
- Fixed a race condition when opening a service directory.
Connectivity Drivers
The following updates have been made for Connectivity Drivers:
- Improved the stability of the SDIO driver by addressing a crash that could
occur during startup.
- Changes: fxr/1065872
Diagnostics
The following updates have been made for Diagnostics:
- Optimized LogTracer to prevent unnecessary log record creation when using
the log crate in Rust.
- Changes: fxr/1061641
- Prevent blocking on interest listening in exceptions which caused issues
during shutdown.
- Changes: fxr/1065413
- Power broker includes lease history in Inspect.
- Changes: fxr/1066704
- Various improvements to the C++ syslog API.
- Bugs: b/299996898
Display
The following updates have been made for Display:
- Simplified the display driver stack:
- Removed the unused DFv1 driver and enabled the DFv2 driver component by
default.
- Changes: fxr/1070487, fxr/1070979, fxr/1025381
- Bugs: fxb/323061435
- Removed the unused DFv1 driver and enabled the DFv2 driver component by
default.
Driver Framework
The following updates have been made for Driver Framework:
- Syslog dependency removal: Removed the syslog dependency from the driver
runtime shared library. This also solves link errors at runtime when Bazel
drivers request an otherwise absent libsyslog.so in some cases.
- Changes: fxr/1068592
FIDL
The following updates have been made for FIDL:
- Improved FIDL performance and tooling:
- Optimized the FIDL Rust client waker and added handle counts to assertion
checks in C++.
- Changes: fxr/1058952, fxr/1063876
- Optimized the FIDL Rust client waker and added handle counts to assertion
checks in C++.
- Implemented RFC-0232 for multi-API level FIDL bindings:
- Added support in fidlc and updated the GN build to use specific API level versions.
- Changes: fxr/955053
- Bugs: fxb/42085274
- Removed the deprecated
@available legacy
argument and updated related documentation.- Changes: fxr/1062057, fxr/1064815, fxr/1068119
- Added support in fidlc and updated the GN build to use specific API level versions.
- Improved FIDL API design and documentation:
- Clarified AST for methods and disallowed attributes on the right-hand side
of type declarations.
- Changes: fxr/1067293, fxr/1065794
- Bugs: fxb/42156522
- Clarified AST for methods and disallowed attributes on the right-hand side
of type declarations.
- Enforced ABI checks in FIDL for both platform and external components.
- Changes: fxr/1068293, fxr/1065802
- Bugs: fxb/335446415
- API level reference standardization: The
HEAD
keyword is now supported inZX_*_SINCE()
macros, enabling consistent API level referencing and future-proofing API changes.- Changes: fxr/1046234, fxr/1043241
- Bugs: fxb/42084512
I18n
The following updates have been made for I18n:
- Cleaned up the build system by removing empty migration groups.
- Changes: fxr/1070932
IOT
The following updates have been made for IOT:
- Improved the reliability of the IOT stack by fixing an issue with the
discovery proxy workaround and preventing incorrect IPv4 address additions.
- Changes: fxr/1069779, fxr/1057894
Kernel
The following updates have been made for Kernel:
- Improved timer functionality: The
platform_set_oneshot_timer
function now uses raw ticks as input, and support for the Sstc feature allows directly setting the timer compare value in supervisor mode.- Changes: fxr/1063733, fxr/1064680
- Bugs: fxb/338233921
- Enhanced system call logging and debugging: System calls are now logged by
name in LTRACE, and kernel logging for suspend failures has been improved.
- Changes: fxr/1066672, fxr/1071732, fxr/1070833, fxr/1069791
- Bugs: fxb/346411778
- Addressed race conditions and stability issues: Fixed race conditions
related to CPU idle state after suspend and thread scheduling during hotplug,
and reverted changes to page allocation and dirty page handling for stability.
- Changes: fxr/1060375, fxr/1064307, fxr/1065232, fxr/1065213, fxr/1065212
- Introduced new VMO system calls: Added
zx_vmo_get_stream_size
andzx_vmo_set_stream_size
, which will eventually replace using properties for VMO content size.- Changes: fxr/1047092
- Bugs: fxb/340137331
- Miscellaneous bug fixes: Addressed assertion failures in
std::find
and improved page cache behavior.- Changes: fxr/1065813, fxr/1065435
Platform Drivers
The following updates have been made for Plaform Drivers:
- Enhanced GPIO utility: The GPIO util tool now supports setting pin
functions and includes interrupt functionality.
- Changes: fxr/1056175, fxr/1068518, fxr/1067295
- Improved USB functionality and stability: USB connection detection now
works correctly, and the
fusb302
driver update prevents duplicateGoodCRC
messages, resolving a VIM3 power-cycling issue.- Changes: fxr/1065852, fxr/1055942
- Bugs: b/341170277
- Driver runtime optimization: The driver runtime shared library no longer
depends on the syslog library, addressing runtime link errors.
- Changes: fxr/1068592
- Amlogic display enhancement: The Amlogic display encoder color turns green
when
SetDisplayPower(false)
is called for easier debugging.- Changes: fxr/1060376
- Node topology verification: The
sherlock
andastro
device-enumeration-test
have been migrated to verify node topology using monikers from the driver development service.- Changes: fxr/1069942, fxr/1062249, fxr/977641
- ElementControl channel provisioning:
Topology.AddElement
now lets clients provide their ownElementControl
channel. While clients can still use the returned channel for now, this behavior will be deprecated.- Changes: fxr/1069217, fxr/1069216
Rust
The following updates have been made for Rust:
- Toolchain and dependency updates: Removed the
--no-goma
flag fromrust-ci
, added therutabaga_gfx
crate, removeddependency_on_unit_never_type_fallback
instances and the-Awhere_clauses_object_safety
lint.- Changes: fxr/1064520, fxr/1064302, fxr/1067496, fxr/1067476
- Bugs: fxb/347752627, fxb/42069541.
- Improved remote execution and API level handling: Rust's remote execution
strategy is now correctly propagated, and Rustdoc no longer handles the
api_level
flag.- Changes: fxr/1070193, fxr/1064676
- Bugs: fxb/344622439
Power Management
The following updates have been made for Power Management:
- Power Dependency Management and Terminology: When an element is removed,
its dependencies are also removed. "Active" dependencies are renamed to
"assertive", and "passive" to "opportunistic".
- Changes: fxr/1066912, fxr/1066702
- Fake Suspend Initialization:
fake-suspend
is now blocked until initialized.- Changes: fxr/1065355
SDK
The following updates have been made for SDK:
- Improved IDK atom generation: The Fuchsia Bazel SDK now uses
//sdk:final_fuchsia_sdk
, moving IDK atom generation to the Bazel graph, and an empty*.api_summary.json
file indicates an unsupported FIDL library at a specific API level.- Changes: fxr/1071514, fxr/1065797
- Bugs: fxb/349296982, fxb/346643427
- Enhanced functionality and testing:
fbl/fzl
has been removed from the SDK,_walk_json
is more resilient, and tests were added forstructured_config
.- Changes: fxr/1066405, fxr/1069274, fxr/1069354, fxr/1066014
- Added
bin_name
support: Thefuchsia_cc_binary
rule now supports thebin_name
attribute.- Changes: fxr/1062452
Software Delivery
The following updates have been made for Software Delivery:
- Package directory and cache optimization: Package directory is optimized
for fxblob, significantly improving blob reading speed, and the package cache
no longer needs a storage lifetime workaround.
- Changes: fxr/1034836, fxr/1068515
- Improved logging and error messages: Added a log message for the system
image package hash and enhanced error messages related to packages.
- Changes: fxr/1065243, fxr/1065734
Starnix
The following updates have been made for Starnix:
- Improved resource management and attribution: Starnix programs are now
reported as child principals for better memory attribution.
- Changes: fxr/1056589
- Bugs: b/337865227, b/341981291
- Enhanced signal handling and suspend/resume functionality:
Process-directed signals are optimized to interrupt only one task, and a
suspend waiter issue is resolved, preventing unresponsiveness after resuming
with an active shell.
- Changes: fxr/1065333, fxr/1068452
- Filesystem and data storage improvements: Added routing for the data
storage capability in tests, enabling xts tests on real filesystems, and added
support for propagating extended attributes from tarballs to filesystems.
- Changes: fxr/1065923, fxr/1069072
- Graphics and input enhancements: Added a Gfxstream-based Rutabaga instance
to the GPU device and a device for
touch_standby
state communication with the input pipeline.- Changes: fxr/1064609, fxr/1061472
- Improved policy handling, stats, and address space management: Refined
policy index and permission checking, ensured stats refresh after suspend, and
fixed an issue with
user_new_limit
reading from the wrong address space.- Changes: fxr/1056436, fxr/1066879, fxr/1067194
- Miscellaneous bug fixes and updates: Addressed various issues including
bpf file descriptor handling, wake lease renaming, ebpf help function stubs,
and
FsNode.append_lock
modification.- Changes: fxr/1068752, fxr/1067552, fxr/1065032, fxr/1053437, fxr/1057599, fxr/1060717, fxr/1059713, fxr/1056135, fxr/1056133
- Bugs:fxb/307908515
Testing
The following updates have been made for Testing:
- Enhanced
fx test
user experience: Thefx test
rewrite provides debugging enhancements, including improved argument parsing and helpful suggestions.- Changes: fxr/1066847, fxr/1066846, fxr/1066845, fxr/1065245
- Bugs: fxb/330772496, fxb/319320287
- Improved test robustness and reliability: The SWD end-to-end tests,
network tests, and
ip-test-macro
are now more reliable and informative, while a potential flake in WLAN'shw-sim
autoconnect has been addressed. - Updated flag name and removed unused file: The
ffx-output-directory
flag is renamed toartifact-output-directory
for clarity, and the unusedmock.rs
file is removed fromfuchsia-component-test
.- Changes: fxr/1060257, fxr/1056052
- More robust
gvisor_syscall_tests
: These tests are more robust and accurate, with updates for raw IP socket testing, kernel version handling, PMTUD, and a fix forIPPROTO_ICMP
.- Changes: fxr/1063593
- GPIO and netstack test updates:
gpio
tests are prepared for DFv2/gtest conversion. Thenetstack_test
macro is now explicit, requiring explicit type parameters.- Changes: fxr/1066614, fxr/1069662
- Bugs: fxb/42070381, fxb/346587200
Timekeeping
The following updates have been made for Timekeeping:
- Improved TTRF documentation and testing: Implemented persistent testing
async commands for Timekeeper behavior modification (not yet enabled), added a
README with example code for TTRF, and removed outdated CFv1 references.
- Changes: fxr/1046597, fxr/1050315, fxr/1062052
- Removed unused dependencies: Removed unused power topology dependency
tokens.
- Changes: fxr/1070977
Toolchain
The following updates have been made for Toolchain:
- Paravirtualization Support:
PlatformParavirtualizationConfig
now defaults to allowing virtualization if supported. Paravirtualization support, including the vsock service, was added to the 'generic emulated arm64' board configuration.- Changes: fxr/1069282, fxr/1069197
Tools
The following updates have been made for Tools:
- Bluetooth controller enhancements: The fake Bluetooth controller now
supports setting the LE connection role.
- Changes: fxr/1066752
- Testing and tooling updates: Realm integration tests were added to CTF.
Tests for the Bazel SDK's
structured_config
have been added. Thebt-fct-hci
tool was migrated toHciTransport
. The testrunner now reconnects on timeout for target connection errors.- Changes: fxr/1065836, fxr/1066014, fxr/1058362, fxr/1066680
- Test Phys VMO cleanliness and logging: Test phys VMOs are now cleaned
before being returned to ensure a known state. A warning is issued when
records_dropped
exceeds 0 for skippedContextSwitch
records.- Changes: fxr/1069592, fxr/1035236
- Package information source: The list-packages tool now sources package
information from
all_package_manifests.list
. The visual design of the pkgstats package page has been improved.- Changes: fxr/1052925, fxr/1065795
UI
The following updates have been made for UI:
- Debugging Enhancements: Hit regions and display power status are now
dumped to Inspect for easier debugging.
- Changes: fxr/1066094, fxr/1059872
WLAN
The following updates have been made for WLAN:
- Testing enhancements: Support was added for deleting fullmac drivers
during startup for testing. A potential flake in hw-sim autoconnect has been
addressed. An improvement was made to the Honeydew test harness for detecting
abnormal startup.
- Changes: fxr/1060393, fxr/1060394, fxr/1060972, fxr/1062575
- Network configuration migration: The format and storage of saved network
configurations were updated, including migration from old stash data. A new
metric tracks network configuration migration results.
- Changes: fxr/977126, fxr/1050302
- Roaming improvements: The
RoamManager
's serve function was separated for future conversion to a service loop-based service. Internal roaming library types are updated for clarity, removing unnecessary fields. Roaming disconnect handling has been improved, distinguishing ignorable disconnects from roam attempt failures.- Changes: fxr/1037271, fxr/1037017, fxr/1048635
- Inspect optimization: The
InspectBoundedSetNode
struct optimizes event metadata handling in Inspect. Logging now includes disconnect information in Inspect.- Changes: fxr/1049994, fxr/1050310