Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC [buildbot] Illumos-5701 zpool list reports incorrect "alloc" value for cache devices #3498

Conversation

kernelOfTruth
Copy link
Contributor

Reviewed by: Matthew Ahrens mahrens@delphix.com
Reviewed by: George Wilson george@delphix.com
Reviewed by: Alek Pinchuk alek.pinchuk@nexenta.com
Approved by: Dan McDonald danmcd@omniti.com

RFC:

was
arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);

correctly placed at

@arc_hdr_l2hdr_destroy(arc_buf_hdr_t *hdr)

?

Block:

+   /*
+    * If the l2hdr's b_daddr is equal to L2ARC_ADDR_UNSET, then
+    * this header is being processed by l2arc_write_buffers() (i.e.
+    * it's in the first stage of l2arc_write_buffers()).
+    * Re-affirming that truth here, just to serve as a reminder. If
+    * b_daddr does not equal L2ARC_ADDR_UNSET, then the header may or
+    * may not have its HDR_L2_WRITING flag set. (the write may have
+    * completed, in which case HDR_L2_WRITING will be false and the
+    * b_daddr field will point to the address of the buffer on disk).
+    */
+// IMPLY(l2hdr->b_daddr == L2ARC_ADDR_UNSET, HDR_L2_WRITING(hdr));

1883 to 1893 applicable to ZFSOnLinux ?

@kernelOfTruth kernelOfTruth changed the title [buildbot] 5701 zpool list reports incorrect "alloc" value for cache devices [buildbot, RFC] 5701 zpool list reports incorrect "alloc" value for cache devices Jun 15, 2015
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george@delphix.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Approved by: Dan McDonald <danmcd@omniti.com>

arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);

correctly placed at

@arc_hdr_l2hdr_destroy(arc_buf_hdr_t *hdr)

?

Block:

+   /*
+    * If the l2hdr's b_daddr is equal to L2ARC_ADDR_UNSET, then
+    * this header is being processed by l2arc_write_buffers() (i.e.
+    * it's in the first stage of l2arc_write_buffers()).
+    * Re-affirming that truth here, just to serve as a reminder. If
+    * b_daddr does not equal L2ARC_ADDR_UNSET, then the header may or
+    * may not have its HDR_L2_WRITING flag set. (the write may have
+    * completed, in which case HDR_L2_WRITING will be false and the
+    * b_daddr field will point to the address of the buffer on disk).
+    */
+// IMPLY(l2hdr->b_daddr == L2ARC_ADDR_UNSET, HDR_L2_WRITING(hdr));
lines 1883 to 1893 applicable to ZFSOnLinux ?

References:
https://www.illumos.org/issues/5701
illumos/illumos-gate@a52fc31

Ported by: kernelOfTruth kerneloftruth@gmail.com
@kernelOfTruth kernelOfTruth force-pushed the zfs_master_12.06.2015_illumos-5701 branch from 347a8df to 1a6cf0d Compare June 15, 2015 23:18
@kernelOfTruth kernelOfTruth changed the title [buildbot, RFC] 5701 zpool list reports incorrect "alloc" value for cache devices [buildbot, RFC] Illumos-5701 zpool list reports incorrect "alloc" value for cache devices Jun 16, 2015
@kernelOfTruth kernelOfTruth changed the title [buildbot, RFC] Illumos-5701 zpool list reports incorrect "alloc" value for cache devices RFC [buildbot] Illumos-5701 zpool list reports incorrect "alloc" value for cache devices Jun 24, 2015
@kernelOfTruth
Copy link
Contributor Author

@behlendorf is the block with

IMPLY(l2hdr->b_daddr == L2ARC_ADDR_UNSET, HDR_L2_WRITING(hdr));

needed on ZFSOnLinux - it seems to be specific to Illumos derivatives and a previous "incarnation" of this patch has been tested positively with that part commented out

also I'm not sure if

arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);

was correctly placed at

@arc_hdr_l2hdr_destroy(arc_buf_hdr_t *hdr)

in that port

@behlendorf
Copy link
Contributor

Merged to master as:

d962d5d Illumos 5701 - zpool list reports incorrect "alloc" value for cache devi

Expect a follow up patch stack fairly soon to resolve as many of the outstanding ARC discrepancies between upstream and ZoL.

@behlendorf behlendorf closed this Jun 25, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants