pub/scm/linux/kernel/git/mtkaczyk/mdadm-test.git  about / heads / tags
mtkaczyk's fork of mdadm.git
$ git log --pretty=format:'%h %s (%cs)%d'
17fed47a bitmap.h: Minor fixes (2025-02-05)
	(HEAD -> master, main)
eb9876f5 bitmap.h - clear __KERNEL__ based headers (2025-02-05)
f2197b6b super-ddf: optimize DDF header search for widely used RAID controllers (2025-02-03)
9e8b3b14 super-ddf: Prevent crash when handling DDF metadata (2025-02-03)
1fc0f290 platform-intel: Disable legacy option ROM scan on UEFI machines (2025-02-03)
c09ae841 mdadm: fix --grow with --add for linear (2025-01-28)
21e4efb1 udev: persist properties of MD devices after switch_root (2025-01-27)
b1ee932b mdopen: add sbin path to env PATH when call system("modprobe md_mod") (2025-01-27)
e0df6c4c mdadm/raid6check: add xmalloc.h to raid6check.c (2025-01-17)
82ccad68 Refactor continue_via_systemd() (2025-01-13)
...

$ git cat-file blob HEAD:README.md
**mdadm** is a utility used to create and manage **software RAID** devices implemented through
**Multiple devices driver (MD)** in kernel. It supports following RAID metadata formats:

* [Linux native RAID](https://raid.wiki.kernel.org/index.php/RAID_superblock_formats):

  Known as **native** or **native RAID**. First and default metadata format. Metadata management
  is implemented in **MD driver**.

* Matrix Storage Manager Support (no reference, metadata format documentation is proprietary).

  Known as **IMSM**. Metadata format developed and maintained by **Intel®** as a part of **VROC**
  solution. There are some functional differences between **native** and **imsm**. The most
  important difference is that the metadata is managed from userspace.

  **CAUTION:** **imsm** is compatible with **Intel RST**, however it is not officially supported.
  You are using it on your own risk.

* [Common RAID DDF Specification Revision](https://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf)

    **IMPORTANT:** DDF is in **maintenance only** mode. There is no active development around it.
    Please do not use it in new solutions.

# Questions and Support

This Github site is **not** right place to ask if your are looking for:
- support from Linux Raid Community;
- support with kernel issues;

This is the place where development of mdadm application is done. Please, do not use for
looking for support. You should always ask on [Mailing List](https://lore.kernel.org/linux-raid/).

Please use issues if you have confirmation that issue you are experiencing is related to mdadm
components:
- mdadm;
- mdmon;
- raid6check;
- swap_super;
- test_stripe;
- systemd services ( see systemd/);
- udev rules;
- manual pages (including md.man)

For example:
- mdadm issues (e.g segfaults, memory leaks, crashes, bad communication with MD driver);
- feature requests for mdadm;
- suggestions or minor fixes requested (e.g. better error messages);

Generally, if you are not sure it is better to ask on
[Mailing List](https://lore.kernel.org/linux-raid/) first.

# How to Contribute

Effective immediately [Github](https://github.com/md-raid-utilities/mdadm) is the primary
location for **mdadm**. Please use pull requests to contribute.

It was originally hosted on [kernel.org](https://kernel.org/). You can access the old repository
[here](https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git).

While this is the preferred contribution method, mailing list submissions are still welcome and
will be handled as has always been the case for mdadm. Please add "mdadm:" to the subject to allow
automation to create Github Pull Request and run checks.

**NOTE:** Maintainers may ask you to send RFC to mailing list if the proposed code requires
consultation with kernel developers.

Kernel coding style is used. Please familiarize with general kernel
[submitting patches](https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html)
documentation. Formatting, tags and commit message guidelines applies to **mdadm**.

[Checkpatch](https://docs.kernel.org/dev-tools/checkpatch.html) script is run on
every patch in pull request so be sure that your commits are not generating
issues. There are some excludes, so the best is to follow github checkpatch action result.

Pull Request are closed by `Rebase and Merge` option, so it requires to keep every commit
meaningful. Kernel style requires that. The review changes must be pushed with **push --force**
to the chosen branch, then Pull Request will be automatically updated.

# Maintainers of mdadm repository on kernel.org

If there are differences between github and kernel.org, please contact kernel.org mdadm maintainers:

- Jes Sorensen <jes@trained-monkey.org>;
- Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>;

# Minimal supported kernel version

We do not support kernel versions below **v3.10**. Please be aware that maintainers may remove
workarounds and fixes for legacy issues.

# Dependencies

The following packages are required for compilation:

| RHEL | SLES | Debian/Ubuntu |
| :---: | :---: | :---: |
| `pkgconf` | `pkg-config` | `pkg-config` |
| `gcc` | `gcc` | `gcc` |
| `make` | `make` | `make` |
| `libudev-devel` | `libudev-devel` | `libudev-dev` |

# Compiling mdadm

Run `make` command to compile mdadm.

Specifying more jobs e.g. `make -j4` can decrease compilation time significantly.

Various values can be specified for the `CXFLAGS` variable to customize the build process:
- Run `make CXFLAGS=-ggdb` to include gdb debugging information.
- Run `make CXFLAGS=-DDEBUG` to enable additional debug information through dprintf statements
and call traces.
- Run `make CXFLAGS=-DNO_LIBUDEV` to compile without `libudev`.

To build with more than one option specified in `CXFLAGS`, separate each option with a space, e.g.
`make CXFLAGS="-ggdb -DDEBUG"`.

Additionally, the `EXTRAVERSION` variable can be set to build with user-friendly version label,
useful when customizing mdadm builds or labeling some instance in between major releases,
e.g. `make EXTRAVERSION="custom-label"`.

# Installing mdadm

Before installing mdadm, it is advised to uninstall vendor-provided packages (mdadm.deb, mdadm.rpm
etc.) in order to avoid configuration issues.

Run `make install` command to install mdadm. This command invokes the following targets:
- `install-bin`
- `install-man`
- `install-udev`

After installing mdadm, consider rebuilding initramfs to ensure the changes take effect.

List of installation targets:
- Run `make install-bin` to install the mdadm and mdmon binary files.
- Run `make install-systemd` to install the systemd services.
- Run `make install-udev` to install the udev rules.
- Run `make install-man` to install the manual pages (`mdadm.8`, `md.4`, `mdadm.conf.5`,
`mdmon.8`).

The following targets are deprecated and should not be used:
- `install-static`
- `install-tcc`
- `install-uclibc`
- `install-klibc`

# License

It is released under the terms of the **GNU General Public License version 2** as published
by the **Free Software Foundation**.

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
  main         bitmap.h: Minor fixes (2025-02-05)
* master       bitmap.h: Minor fixes (2025-02-05)
  mdadm-3.3.x  Release mdadm-3.3.4 (2015-08-03)
  cluster      Reuse calc_bitmap_size to reduce code size (2015-06-17)
  mdadm-3.2.x  Release 3.2.6 - stability release (2012-10-25)
  data_offset  mdadm: Fix Segmentation fault. (2012-06-05)
  r10-reshape  super1: reserve  at least 2 chunks for reshape headroom. (2012-05-09)
  devel-3.3    Bad block log (2011-07-27)
  devel-3.2    open_dev_excl: allow device to be read-only. (2011-03-24)
  hotunplug    Update udev rules for hotplug support. (2010-04-09)
...

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
mdadm-4.2    Release mdadm-4.2 (2021-12-30) tar.gz
mdadm-4.2-rc3 mdadm-4.2-rc3 (2021-11-03) tar.gz
mdadm-4.2-rc2 mdadm-4.2-rc2 (2021-08-02) tar.gz
mdadm-4.2-rc1 Release mdadm-4.2-rc1 (2021-04-14) tar.gz
mdadm-4.1    mdadm-4.1 (2018-10-01) tar.gz
mdadm-4.1-rc2 mdadm-4.1-rc2 (2018-08-03) tar.gz
mdadm-4.1-rc1 mdadm-4.1-rc1 (2018-03-26) tar.gz
mdadm-4.0    mdadm-4.0 (2017-01-09) tar.gz
mdadm-3.4    mdadm-3.4 - feature release (2016-01-28) tar.gz
mdadm-3.3.4  mdadm-3.3.4 - important bugfix release (2015-08-03) tar.gz
...

# associated public inboxes:
# (number on the left is used for dev purposes)
       1785 linux-raid
        110 lkml
         28 linux-arm-kernel
         27 qemu-devel
         26 linux-devicetree
         23 linux-block
         22 dm-devel
         21 netdev
         21 u-boot
         17 dpdk-dev
         16 git
         15 stable
         15 dri-devel
         13 linux-media
         13 xen-devel
         12 intel-gfx
         11 linux-mm
         11 linuxppc-dev
         10 linux-mediatek
         10 linux-fsdevel
         10 alsa-devel
          9 linux-wireless
          9 linux-btrfs
          9 openembedded-core
          8 linux-nfs
          8 linux-scsi
          8 linux-gpio
          8 buildroot
          7 bpf
          7 linux-rdma
          7 linux-ext4
          7 kvm
          7 amd-gfx
          7 linux-omap
          6 linux-xfs
          6 linux-acpi
          6 netfilter-devel
          6 linux-clk
          6 linux-arch
          6 linux-rockchip
          6 linux-s390
          5 linux-mtd
          5 linux-crypto
          5 linux-cifs
          5 linux-arm-msm
          5 linux-mips
          5 linux-pm
          5 linux-kselftest
          5 linux-iio
          5 linux-f2fs-devel
          5 linux-doc
          5 linux-tegra
          5 ceph-devel
          5 linux-sh
          5 kernel-janitors
          5 openembedded-devel
          5 igt-dev
          4 linux-samsung-soc
          4 linux-riscv
          4 linux-nvme
          4 linux-iommu
          4 linux-rtc
          4 kvmarm
          4 linux-bluetooth
          4 linux-ide
          4 linux-trace-devel
          4 backports
          4 linux-mmc
          4 linux-bcache
          4 nvdimm
          4 iwd
          4 yocto
          4 yocto-meta-freescale
          4 yocto-meta-virtualization
          4 kexec
          4 intel-xe
          4 grub-devel
          3 linux-amlogic
          3 linux-erofs
          3 linux-nvdimm
          3 linux-snps-arc
          3 fstests
          3 linux-input
          3 linux-usb
          3 linux-renesas-soc
          3 selinux
          3 linux-parisc
          3 linux-leds
          3 linux-security-module
          3 linux-pci
          3 linux-modules
          3 linux-rt-users
          3 linux-serial
          3 linux-watchdog
          3 rcu
          3 linux-i3c
          3 util-linux
          3 linux-man
          3 linux-api
          3 linux-spi
          3 linux-i2c
          3 linux-sparse
          3 virtualization
          3 linux-kbuild
          3 linux-can
          3 platform-driver-x86
          3 openbmc
          3 linux-fbdev
          3 linux-cxl
          3 linux-perf-users
          3 rust-for-linux
          3 nouveau
          3 sparclinux
          3 linux-coco
          3 fio
          3 ltp
          3 yocto-toaster
          3 yocto-meta-arm
          3 bitbake-devel
          3 linux-patches
          3 yocto-meta-ti
          3 yocto-meta-arago
          3 openrisc
          3 intel-wired-lan
          3 linux-um
          3 poky
          3 qemu-riscv
          3 linux-ia64
          3 linux-alpha
          3 linux-hexagon
          3 reiserfs-devel
          3 u-boot-amlogic
          3 fuego
          2 linux-efi
          2 linux-integrity
          2 linux-edac
          2 linux-hwmon
          2 driverdev-devel
          2 dmaengine
          2 linux-hyperv
          2 linux-m68k
          2 linux-wpan
          2 wireguard
          2 linux-csky
          2 linux-unionfs
          2 linux-firmware
          2 cip-dev
          2 linux-remoteproc
          2 linux-pwm
          2 lttng-dev
          2 linux-fpga
          2 containers
          2 phone-devel
          2 linux-hardening
          2 dash
          2 keyrings
          2 target-devel
          2 soc
          2 ocfs2-devel
          2 linux-phy
          2 linux-staging
          2 linux-sunxi
          2 mptcp
          2 regressions
          2 ntfs3
          2 llvm
          2 ofono
          2 outreachy
          2 xenomai
          2 loongarch
          2 imx
          2 b4-sent
          2 linux-trace-kernel
          2 oe-kbuild-all
          2 batman
          2 virtio-comment
          2 v9fs
          2 ecryptfs
          2 cluster-devel
          2 cgroups
          2 kvm-ppc
          2 linux-sound
          2 linux-nilfs
          2 lvs-devel
          2 lvm-devel
          2 perfbook
          2 virtio-fs
          1 linux-fscrypt
          1 cocci
          1 live-patching
          1 kernel-hardening
          1 linux-next
          1 kernelnewbies
          1 linux-sgx
          1 workflows
          1 selinux-refpolicy
          1 linux-spdx
          1 ksummit-discuss
          1 io-uring
          1 linux-kernel-mentees
          1 tpmdd-devel
          1 linux-audit
          1 linux-dash
          1 mm-commits
          1 xdp-newbies
          1 linux-sctp
          1 lustre-devel
          1 ath10k
          1 ath11k
          1 ksummit
          1 b43-dev
          1 linux-nfc
          1 linux-bcachefs
          1 ath9k-devel
          1 linux-ppp
          1 ell
          1 yocto-docs
          1 chrome-platform
          1 ntb
          1 damon
          1 asahi
          1 ath12k
          1 oe-linux-nfc
          1 oe-chipsec
          1 fsverity
          1 virtio-dev
          1 kdevops
          1 kbd
          1 autofs
          1 cpufreq
          1 dccp
          1 devicetree-spec
          1 devicetree-compiler
          1 initramfs
          1 hail-devel
          1 kvm-ia64
          1 linux-8086
          1 kernel-testers
          1 linux-btrace
          1 linux-embedded
          1 linux-hams
          1 linux-hotplug
          1 linux-laptop
          1 trinity
          1 linux-metag
          1 linux-x25
          1 netfilter
          1 linux-oxnas
          1 lm-sensors
          1 acpica-devel
          1 smatch
          1 spdk
          1 wireless-regdb
          1 netfs
          1 powertop
          1 dtrace
          1 yocto-patches
          1 barebox
          1 linux-aspeed

git clone https://yhbt.net/lore/pub/scm/linux/kernel/git/mtkaczyk/mdadm-test.git