### Summary

ansible_processor_threads_per_core shows incorrect information against AMD Genoa (AMD EPYC 9654P 96-Core Processor) based hosts. 

Issue Description :
ansible_processor_threads_per_core  returns 1 instead of 2, on a host where HT is enabled. command output of lscpu shows the right information. 

Setup module output:
```
"ansible_processor_threads_per_core": 1,
```
lscpu output:
```
Thread(s) per core:                 2
```
Ansible Versions:
```
ansible [core 2.11.6]
python version = 3.6.8
jinja version = 2.11.3
```
### Issue Type

Bug Report

### Component Name

yum

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.6]
python version = 3.6.8
jinja version = 2.11.3
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
Nothing returned
```


### OS / Environment

CentOS (CentOS Linux release 7.9.2009 (Core))

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)

```
ansible -i /tmp/inv all -m setup -a 'gather_subset=!all,!any,virtual,network,hardware'

### Expected Results

Expected : "ansible_processor_threads_per_core": 2,
Getting: ""ansible_processor_threads_per_core": 1,"

### Actual Results

```console
Details given as above
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
uptime_facts = {}
        uptime_file_content = get_file_content('/proc/uptime')
        if uptime_file_content:
            uptime_seconds_string = uptime_file_content.split(' ')[0]
            uptime_facts['uptime_seconds'] = int(float(uptime_seconds_string))
        return uptime_facts
    def _find_mapper_device_name(self, dm_device):
        dm_prefix = '/dev/dm-'
        mapper_device = dm_device
        if dm_device.startswith(dm_prefix):
            dmsetup_cmd = self.module.get_bin_path('dmsetup', True)
            mapper_prefix = '/dev/mapper/'
            rc, dm_name, err = self.module.run_command("%s info -C --noheadings -o name %s" % (dmsetup_cmd, dm_device))
            if rc == 0:
                mapper_device = mapper_prefix + dm_name.rstrip()
        return mapper_device
    def get_lvm_facts(self):
        """ Get LVM Facts if running as root and lvm utils are available """
        lvm_facts = {'lvm': 'N/A'}
        if os.getuid() == 0 and self.module.get_bin_path('vgs'):
            lvm_util_options = '--noheadings --nosuffix --units g --separator ,'
            vgs_path = self.module.get_bin_path('vgs')
            
            vgs = {}
            if vgs_path:
                rc, vg_lines, err = self.module.run_command('%s %s' % (vgs_path, lvm_util_options))
                for vg_line in vg_lines.splitlines():
                    items = vg_line.strip().split(',')
                    vgs[items[0]] = {'size_g': items[-2],