DIE temperature reading cause CPU usage increase

LOG_MODULE_REGISTER(monitor, LOG_LEVEL_DBG);

#define DIE_TEMP_ALIAS DT_ALIAS(die_temp0)
#define DIE_TEMPERATURE_SENSOR IF_ENABLED(DT_NODE_EXISTS(DIE_TEMP_ALIAS), DEVICE_DT_GET(DIE_TEMP_ALIAS))

static const struct device *const sensor = DIE_TEMPERATURE_SENSOR;

#define STACKSIZE 512
#define MONITOR_THREAD_PRIORITY 15

static int print_die_temperature(const struct device *dev)
{
	struct sensor_value val;
	int                 rc;

	/* fetch sensor samples */
	rc = sensor_sample_fetch(dev);
	if (rc) {
		LOG_ERR("Failed to fetch sample (%d)", rc);
		return rc;
	}

	rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
	if (rc) {
		LOG_ERR("Failed to get data (%d)", rc);
		return rc;
	}

	LOG_DBG("CPU Die temperature[%s]: %d°C", dev->name, (int16_t)sensor_value_to_double(&val));
	return 0;
}

void monitor_main(void)
{
	if (!device_is_ready(sensor)) {
		LOG_ERR("sensor: device %s not ready.", sensor->name);
	}

	uint32_t counter = 0;
	while (true) {

		int rc = print_die_temperature(sensor);
		if (rc < 0) {
			LOG_ERR("Failed to print die temperature(err %d)", rc);
		}
		LOG_DBG("Counter: %d", counter++);

		k_msleep(1000);
	}
}

K_THREAD_DEFINE(monitor, STACKSIZE, monitor_main, NULL, NULL, NULL, MONITOR_THREAD_PRIORITY, 0, 10000);

this is the last log message from monitor thread, I never got any error message from the thread.

00> [01:37:03.890,808] <dbg> monitor: print_die_temperature: CPU Die temperature[temp@4000c000]: 34°C
00> [01:37:03.890,838] <dbg> monitor: monitor_main: Counter: 5737
The thread will stop after a few thousands of DIE temperature reading and CPU usage of the thread will increase a lot after it stop working. 
Is there a limit for the DIE temp reading?
Related