On 11 Jun 2021, at 17:51, Mariusz Zaborski wrote:
The branch main has been updated by oshogbo:
URL:
https://cgit.FreeBSD.org/src/commit/?id=89d5cbb82294c8624e66f920d50353057ccab14b
commit 89d5cbb82294c8624e66f920d50353057ccab14b
Author: Mariusz Zaborski <osho...@freebsd.org>
AuthorDate: 2021-06-11 15:35:36 +0000
Commit: Mariusz Zaborski <osho...@freebsd.org>
CommitDate: 2021-06-11 15:51:29 +0000
libnv: optimize nvlist size calculation
If we had a multiple nvlist, during nvlist_pack, we calculated the
size
of every nvlist separately. For example, if we had a nvlist with
three
nodes each containing another (A contains B, and B contains C), we
first
calculated the size of nvlist A (which contains B, C), then we
calculate
the size of B (which contains C, notice that we already did the
calculation of B, when we calculate A), and finally C. This means
that
this calculation was O(N!). This was done because each time we
pack
nvlist, we have to put its size in the header
(the separate header for A, B, and C).
To not break the ABI and to reduce the complexity of nvlist_size,
instead of calculating the nvlist size when requested,
we track the size of each nvlist.
Reported by: pjd, kp
Tested by: kp
Thanks for this!
Do you object to this being MFCd in a few days?
Thanks,
Kristof
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"