Skip to content

Commit

Permalink
memfaultd 1.16.1 (Build 2781235)
Browse files Browse the repository at this point in the history
  • Loading branch information
Memfault Inc committed Jan 7, 2025
1 parent c92348d commit deae7c0
Show file tree
Hide file tree
Showing 10 changed files with 94 additions and 34 deletions.
39 changes: 26 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.16.0] - 2024-12-02
## [1.16.1] - 2024-01-06

This is a small release that adds coredump capture support for 32-bit ARM
targets using [musl libc](https://www.musl-libc.org/).

### Fixed

- The `coredump` feature can now be compiled for the
`armv7-unknown-linux-musleabihf` target.

## [1.16.0] - 2024-12-20

This release includes two major new features:

Expand Down Expand Up @@ -37,28 +47,29 @@ This release includes two major new features:
branch if you are using that version of Yocto!
- The built-in system memory metrics now include additional states such as
Cached and Buffered.
- The `metrics.statsd_server` has had a new option, `legacy_gauge_aggregation`,
added that averages Gauge metric readings rather than simply storing the
most recent value. This is meant to allow for a smooth migration from
`collectd`'s StatsD server to `memfaultd`'s. New integrations should
use the `h` (Histogram) metric type for metrics whose readings should
be aggregated via average.
- The `metrics.statsd_server` has had a new option, `legacy_gauge_aggregation`,
added that averages Gauge metric readings rather than simply storing the most
recent value. This is meant to allow for a smooth migration from `collectd`'s
StatsD server to `memfaultd`'s. New integrations should use the `h`
(Histogram) metric type for metrics whose readings should be aggregated via
average.

### Changed

- The default on-device rate limit for logs ingested by `memfaultd` has been
increased from 500 lines per minute to 1000 lines per minute

### Fixed
- Arbitrary ASCII strings between 1 and 128 in length can
now be used in StatsD metric keys (besides the `:` delimiter),
matching the behavior described in the docs.
### Fixed

- Arbitrary ASCII strings between 1 and 128 in length can now be used in StatsD
metric keys (besides the `:` delimiter), matching the behavior described in
the docs.

### Removed

Some built-in metrics were removed, as the naming conventions were not
consistent. All of these metrics were added in 1.15.0. The list can
be found below:
consistent. All of these metrics were added in 1.15.0. The list can be found
below:

- `cpu_usage_pct`
- `connectivity_recv_bytes`
Expand Down Expand Up @@ -1169,3 +1180,5 @@ package][nginx-pid-report] for a discussion on the topic.
https://github.com/memfault/memfault-linux-sdk/releases/tag/1.15.1-kirkstone
[1.16.0]:
https://github.com/memfault/memfault-linux-sdk/releases/tag/1.16.0-kirkstone
[1.16.1]:
https://github.com/memfault/memfault-linux-sdk/releases/tag/1.16.1-kirkstone
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
BUILD ID: 2760091
GIT COMMIT: 656ed19395
VERSION: 1.16.0
BUILD ID: 2781235
GIT COMMIT: ec62db9dc0
VERSION: 1.16.1
2 changes: 1 addition & 1 deletion memfault-ssf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "memfault-ssf"
version = "1.16.0"
version = "1.16.1"
edition = "2021"
description = "Supporting crate for the Memfault memfaultd embedded Linux agent"
homepage = "https://github.com/memfault/memfaultd"
Expand Down
6 changes: 3 additions & 3 deletions memfault-ssf/VERSION
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
BUILD ID: 2760091
GIT COMMIT: 656ed19395
VERSION: 1.16.0
BUILD ID: 2781235
GIT COMMIT: ec62db9dc0
VERSION: 1.16.1
2 changes: 1 addition & 1 deletion memfaultc-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "memfaultc-sys"
version = "1.16.0"
version = "1.16.1"
edition = "2021"
autobins = false
description = "Supporting crate for the Memfault memfaultd embedded Linux agent"
Expand Down
6 changes: 3 additions & 3 deletions memfaultc-sys/VERSION
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
BUILD ID: 2760091
GIT COMMIT: 656ed19395
VERSION: 1.16.0
BUILD ID: 2781235
GIT COMMIT: ec62db9dc0
VERSION: 1.16.1
6 changes: 3 additions & 3 deletions memfaultd/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "memfaultd"
version = "1.16.0"
version = "1.16.1"
edition = "2021"
autobins = false
rust-version = "1.72"
Expand Down Expand Up @@ -28,8 +28,8 @@ name= "mfw"
path= "src/bin/mfw.rs"

[dependencies]
memfaultc-sys = { path= "../memfaultc-sys", version = "1.16.0" }
ssf = { package = "memfault-ssf", path= "../memfault-ssf", version = "1.16.0" }
memfaultc-sys = { path= "../memfaultc-sys", version = "1.16.1" }
ssf = { package = "memfault-ssf", path= "../memfault-ssf", version = "1.16.1" }
argh = "0.1.10"
cfg-if = "1.0.0"
chrono = { version = "0.4.23", features = ["serde"]}
Expand Down
6 changes: 3 additions & 3 deletions memfaultd/VERSION
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
BUILD ID: 2760091
GIT COMMIT: 656ed19395
VERSION: 1.16.0
BUILD ID: 2781235
GIT COMMIT: ec62db9dc0
VERSION: 1.16.1
49 changes: 48 additions & 1 deletion memfaultd/src/cli/memfault_core_handler/arch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ cfg_if! {
ctx
}
}
} else if #[cfg(target_arch = "arm")] {
} else if #[cfg(all(target_arch = "arm", target_env = "gnu"))] {
pub use libc::user_regs as ElfGRegSet;
pub fn get_stack_pointer(regs: &ElfGRegSet) -> usize {
regs.arm_sp as usize
Expand All @@ -149,6 +149,53 @@ cfg_if! {
todo!()
}
}
} else if #[cfg(all(target_arch = "arm", target_env = "musl"))] {
use libc::c_ulong;
#[derive(Debug, PartialEq, Eq)]
#[repr(C)]
pub struct user_regs {
pub arm_r0: c_ulong,
pub arm_r1: c_ulong,
pub arm_r2: c_ulong,
pub arm_r3: c_ulong,
pub arm_r4: c_ulong,
pub arm_r5: c_ulong,
pub arm_r6: c_ulong,
pub arm_r7: c_ulong,
pub arm_r8: c_ulong,
pub arm_r9: c_ulong,
pub arm_r10: c_ulong,
pub arm_fp: c_ulong,
pub arm_ip: c_ulong,
pub arm_sp: c_ulong,
pub arm_lr: c_ulong,
pub arm_pc: c_ulong,
pub arm_cpsr: c_ulong,
pub arm_orig_r0: c_ulong,
}
pub use user_regs as ElfGRegSet;
pub fn get_stack_pointer(regs: &ElfGRegSet) -> usize {
regs.arm_sp as usize
}
pub use elf::header::EM_ARM as ELF_TARGET_MACHINE;
pub use elf::header::ELFCLASS32 as ELF_TARGET_CLASS;
pub fn get_program_counter(regs: &ElfGRegSet) -> usize {
regs.arm_pc as usize
}
pub fn set_stack_pointer(_regs: &mut HashMap<Register, usize>, _sp: usize) {
todo!()
}
pub fn get_return_register(_regs: &HashMap<Register, usize>) -> Option<usize> {
todo!()
}
pub const fn return_register_idx() -> Register {
todo!()
}
impl From<&ElfGRegSet> for UnwindFrameContext {
fn from(_regs: &ElfGRegSet) -> Self {
todo!()
}
}
} else if #[cfg(target_arch = "x86")] {
pub use libc::user_regs_struct as ElfGRegSet;
pub fn get_stack_pointer(regs: &ElfGRegSet) -> usize {
Expand Down

0 comments on commit deae7c0

Please # to comment.