Tor Browser seems to be using 100% CPU with Whonix after suspending it in Qubes OS. (extensions.torbutton.display_circuit was set to false)
strace of that firefox.real process:
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 1 ([{fd=28, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=126758524}) = 0
read(28, "\372", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=126814100}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=126840480}) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=126966808}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=126996223}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127023667}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=68382}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127085267}) = 0
ioctl(62, FIONREAD, [0]) = 0
ioctl(62, FIONREAD, [0]) = 0
recvfrom(62, "", 0, 0, NULL, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127210674}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=68568}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127270514}) = 0
write(29, "\372", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127326622}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127353195}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=68708}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127417594}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127484800}) = 0
write(21, "M", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127573433}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=68939}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127637183}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127666487}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127692831}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127719544}) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 1 ([{fd=28, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127841280}) = 0
read(28, "\372", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127914602}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=127940983}) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128157522}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128189848}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128217804}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=69578}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128284446}) = 0
ioctl(62, FIONREAD, [0]) = 0
ioctl(62, FIONREAD, [0]) = 0
recvfrom(62, "", 0, 0, NULL, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128423061}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=69780}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128482561}) = 0
write(29, "\372", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128539001}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128565293}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=69919}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128630251}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128683932}) = 0
write(21, "M", 1) = 1
futex(0x76f1be800018, FUTEX_WAKE_PRIVATE, 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128808227}) = 0
gettimeofday({tv_sec=1654193952, tv_usec=70178}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128891705}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128922483}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128949658}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=128977580}) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 1 ([{fd=28, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=129113787}) = 0
read(28, "\372", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=129172552}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=129199407}) = 0
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=28, events=POLLIN}, {fd=54, events=POLLIN}], 5, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=129393462}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=18171, tv_nsec=129423897}) = 0