mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Restrict kstats and print real pointers
There are several places where we use zfs_dbgmsg and %p to print pointers. In the Linux kernel, these values obfuscated to prevent information leaks which means the pointers aren't very useful for debugging crash dumps. We decided to restrict the permissions of dbgmsg (and some other kstats while we were at it) and print pointers with %px in zfs_dbgmsg as well as spl_dumpstack Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: John Gallagher <john.gallagher@delphix.com> Signed-off-by: sara hartse <sara.hartse@delphix.com> Closes #8467 Closes #8476
This commit is contained in:
committed by
Brian Behlendorf
parent
af65079300
commit
a887d653b3
+1
-1
@@ -2266,7 +2266,7 @@ arc_buf_fill(arc_buf_t *buf, spa_t *spa, const zbookmark_phys_t *zb,
|
||||
*/
|
||||
if (error != 0) {
|
||||
zfs_dbgmsg(
|
||||
"hdr %p, compress %d, psize %d, lsize %d",
|
||||
"hdr %px, compress %d, psize %d, lsize %d",
|
||||
hdr, arc_hdr_get_compress(hdr),
|
||||
HDR_GET_PSIZE(hdr), HDR_GET_LSIZE(hdr));
|
||||
if (hash_lock != NULL)
|
||||
|
||||
@@ -2643,7 +2643,7 @@ metaslab_condense(metaslab_t *msp, uint64_t txg, dmu_tx_t *tx)
|
||||
ASSERT(msp->ms_loaded);
|
||||
|
||||
|
||||
zfs_dbgmsg("condensing: txg %llu, msp[%llu] %p, vdev id %llu, "
|
||||
zfs_dbgmsg("condensing: txg %llu, msp[%llu] %px, vdev id %llu, "
|
||||
"spa %s, smp size %llu, segments %lu, forcing condense=%s", txg,
|
||||
msp->ms_id, msp, msp->ms_group->mg_vd->vdev_id,
|
||||
msp->ms_group->mg_vd->vdev_spa->spa_name,
|
||||
|
||||
@@ -118,7 +118,7 @@ range_tree_stat_verify(range_tree_t *rt)
|
||||
|
||||
for (i = 0; i < RANGE_TREE_HISTOGRAM_SIZE; i++) {
|
||||
if (hist[i] != rt->rt_histogram[i]) {
|
||||
zfs_dbgmsg("i=%d, hist=%p, hist=%llu, rt_hist=%llu",
|
||||
zfs_dbgmsg("i=%d, hist=%px, hist=%llu, rt_hist=%llu",
|
||||
i, hist, hist[i], rt->rt_histogram[i]);
|
||||
}
|
||||
VERIFY3U(hist[i], ==, rt->rt_histogram[i]);
|
||||
|
||||
@@ -131,6 +131,7 @@ spa_read_history_init(spa_t *spa)
|
||||
shl->procfs_list.pl_private = shl;
|
||||
procfs_list_install(module,
|
||||
"reads",
|
||||
0600,
|
||||
&shl->procfs_list,
|
||||
spa_read_history_show,
|
||||
spa_read_history_show_header,
|
||||
@@ -301,6 +302,7 @@ spa_txg_history_init(spa_t *spa)
|
||||
shl->procfs_list.pl_private = shl;
|
||||
procfs_list_install(module,
|
||||
"txgs",
|
||||
0644,
|
||||
&shl->procfs_list,
|
||||
spa_txg_history_show,
|
||||
spa_txg_history_show_header,
|
||||
@@ -706,6 +708,7 @@ spa_mmp_history_init(spa_t *spa)
|
||||
shl->procfs_list.pl_private = shl;
|
||||
procfs_list_install(module,
|
||||
"multihost",
|
||||
0644,
|
||||
&shl->procfs_list,
|
||||
spa_mmp_history_show,
|
||||
spa_mmp_history_show_header,
|
||||
|
||||
@@ -848,7 +848,7 @@ space_map_truncate(space_map_t *sm, int blocksize, dmu_tx_t *tx)
|
||||
doi.doi_bonus_size != sizeof (space_map_phys_t)) ||
|
||||
doi.doi_data_block_size != blocksize ||
|
||||
doi.doi_metadata_block_size != 1 << space_map_ibs) {
|
||||
zfs_dbgmsg("txg %llu, spa %s, sm %p, reallocating "
|
||||
zfs_dbgmsg("txg %llu, spa %s, sm %px, reallocating "
|
||||
"object[%llu]: old bonus %u, old blocksz %u",
|
||||
dmu_tx_get_txg(tx), spa_name(spa), sm, sm->sm_object,
|
||||
doi.doi_bonus_size, doi.doi_data_block_size);
|
||||
|
||||
@@ -340,7 +340,7 @@ vdev_remove_initiate_sync(void *arg, dmu_tx_t *tx)
|
||||
*/
|
||||
vdev_config_dirty(vd);
|
||||
|
||||
zfs_dbgmsg("starting removal thread for vdev %llu (%p) in txg %llu "
|
||||
zfs_dbgmsg("starting removal thread for vdev %llu (%px) in txg %llu "
|
||||
"im_obj=%llu", vd->vdev_id, vd, dmu_tx_get_txg(tx),
|
||||
vic->vic_mapping_object);
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ zfs_dbgmsg_init(void)
|
||||
{
|
||||
procfs_list_install("zfs",
|
||||
"dbgmsg",
|
||||
0600,
|
||||
&zfs_dbgmsgs,
|
||||
zfs_dbgmsg_show,
|
||||
zfs_dbgmsg_show_header,
|
||||
|
||||
+1
-1
@@ -3232,7 +3232,7 @@ zil_close(zilog_t *zilog)
|
||||
txg_wait_synced(zilog->zl_dmu_pool, txg);
|
||||
|
||||
if (zilog_is_dirty(zilog))
|
||||
zfs_dbgmsg("zil (%p) is dirty, txg %llu", zilog, txg);
|
||||
zfs_dbgmsg("zil (%px) is dirty, txg %llu", zilog, txg);
|
||||
if (txg < spa_freeze_txg(zilog->zl_spa))
|
||||
VERIFY(!zilog_is_dirty(zilog));
|
||||
|
||||
|
||||
+2
-2
@@ -1893,7 +1893,7 @@ zio_deadman_impl(zio_t *pio, int ziodepth)
|
||||
uint64_t delta = gethrtime() - pio->io_timestamp;
|
||||
uint64_t failmode = spa_get_deadman_failmode(pio->io_spa);
|
||||
|
||||
zfs_dbgmsg("slow zio[%d]: zio=%p timestamp=%llu "
|
||||
zfs_dbgmsg("slow zio[%d]: zio=%px timestamp=%llu "
|
||||
"delta=%llu queued=%llu io=%llu "
|
||||
"path=%s last=%llu "
|
||||
"type=%d priority=%d flags=0x%x "
|
||||
@@ -3444,7 +3444,7 @@ zio_dva_allocate(zio_t *zio)
|
||||
}
|
||||
|
||||
if (error != 0) {
|
||||
zfs_dbgmsg("%s: metaslab allocation failure: zio %p, "
|
||||
zfs_dbgmsg("%s: metaslab allocation failure: zio %px, "
|
||||
"size %llu, error %d", spa_name(spa), zio, zio->io_size,
|
||||
error);
|
||||
if (error == ENOSPC && zio->io_size > SPA_MINBLOCKSIZE)
|
||||
|
||||
Reference in New Issue
Block a user