Re: [developer] dtrace set-error probe in dbuf_findbp is very noisy

2019-09-12 Thread Matthew Ahrens
Sounds good to me.

--matt

On Thu, Sep 12, 2019 at 7:50 AM Gordon Ross  wrote:

> I was using the dtrace set-error probe in ZFS to track something down, and
> I found that the probe in dbuf_findbp is VERY noisy.  I also don't think
> this one is really returning an "error" condition (in the usual sense) but
> rather a status to the caller indicating the "bp" is not there.   Would it
> make sense to get rid of this one?
> It's a small change, so pasted below.
>
>
>
> diff --git a/usr/src/uts/common/fs/zfs/dbuf.c
> b/usr/src/uts/common/fs/zfs/dbuf.c
> index d23cdfa673..47222cd430 100644
> --- a/usr/src/uts/common/fs/zfs/dbuf.c
> +++ b/usr/src/uts/common/fs/zfs/dbuf.c
> @@ -2338,8 +2338,11 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid,
> int fail_sparse,
>  ((nlevels - level - 1) * epbs)) ||
>  (fail_sparse &&
>  blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs {
> - /* the buffer has no parent yet */
> - return (SET_ERROR(ENOENT));
> + /*
> + * The buffer has no parent yet.  This is a normal
> + * condition with sparse files, so no SET_ERROR().
> + */
> + return (ENOENT);
>   } else if (level < nlevels-1) {
>   /* this block is referenced from an indirect block */
>   int err = dbuf_hold_impl(dn, level+1,
>
> *openzfs * / openzfs-developer / see
> discussions  + participants
>  + delivery options
>  Permalink
> 
>

--
openzfs: openzfs-developer
Permalink: 
https://openzfs.topicbox.com/groups/developer/T83528121898a0810-M6a464ea0161f50524a1d0cc5
Delivery options: https://openzfs.topicbox.com/groups/developer/subscription


[developer] dtrace set-error probe in dbuf_findbp is very noisy

2019-09-12 Thread Gordon Ross
I was using the dtrace set-error probe in ZFS to track something down, and
I found that the probe in dbuf_findbp is VERY noisy.  I also don't think
this one is really returning an "error" condition (in the usual sense) but
rather a status to the caller indicating the "bp" is not there.   Would it
make sense to get rid of this one?
It's a small change, so pasted below.



diff --git a/usr/src/uts/common/fs/zfs/dbuf.c
b/usr/src/uts/common/fs/zfs/dbuf.c
index d23cdfa673..47222cd430 100644
--- a/usr/src/uts/common/fs/zfs/dbuf.c
+++ b/usr/src/uts/common/fs/zfs/dbuf.c
@@ -2338,8 +2338,11 @@ dbuf_findbp(dnode_t *dn, int level, uint64_t blkid,
int fail_sparse,
 ((nlevels - level - 1) * epbs)) ||
 (fail_sparse &&
 blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs {
- /* the buffer has no parent yet */
- return (SET_ERROR(ENOENT));
+ /*
+ * The buffer has no parent yet.  This is a normal
+ * condition with sparse files, so no SET_ERROR().
+ */
+ return (ENOENT);
  } else if (level < nlevels-1) {
  /* this block is referenced from an indirect block */
  int err = dbuf_hold_impl(dn, level+1,

--
openzfs: openzfs-developer
Permalink: 
https://openzfs.topicbox.com/groups/developer/T83528121898a0810-M12a158c082e303023845bfd9
Delivery options: https://openzfs.topicbox.com/groups/developer/subscription