* [PATCH 0/2] Fixes in igbvf driver @ 2024-09-20 18:59 Wander Lairson Costa 2024-09-20 18:59 ` [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other Wander Lairson Costa 2024-09-20 18:59 ` [PATCH 2/2] igbvf: remove unused spinlock Wander Lairson Costa 0 siblings, 2 replies; 10+ messages in thread From: Wander Lairson Costa @ 2024-09-20 18:59 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, moderated list:INTEL ETHERNET DRIVERS, open list:NETWORKING DRIVERS, open list Cc: Wander Lairson Costa The first patch fixes a bug manifested manifested in the igbvf driver when interrupting handling for the igb driver delays. The second is just a cleanup for igbvf. Wander Lairson Costa (2): igb: Disable threaded IRQ for igb_msix_other igbvf: remove unused spinlock drivers/net/ethernet/intel/igb/igb_main.c | 2 +- drivers/net/ethernet/intel/igbvf/igbvf.h | 3 --- drivers/net/ethernet/intel/igbvf/netdev.c | 3 --- 3 files changed, 1 insertion(+), 7 deletions(-) -- 2.46.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other 2024-09-20 18:59 [PATCH 0/2] Fixes in igbvf driver Wander Lairson Costa @ 2024-09-20 18:59 ` Wander Lairson Costa 2024-09-23 9:07 ` Przemek Kitszel 2024-09-20 18:59 ` [PATCH 2/2] igbvf: remove unused spinlock Wander Lairson Costa 1 sibling, 1 reply; 10+ messages in thread From: Wander Lairson Costa @ 2024-09-20 18:59 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, moderated list:INTEL ETHERNET DRIVERS, open list:NETWORKING DRIVERS, open list Cc: Wander Lairson Costa, Yuying Ma During testing of SR-IOV, Red Hat QE encountered an issue where the ip link up command intermittently fails for the igbvf interfaces when using the PREEMPT_RT variant. Investigation revealed that e1000_write_posted_mbx returns an error due to the lack of an ACK from e1000_poll_for_ack. The underlying issue arises from the fact that IRQs are threaded by default under PREEMPT_RT. While the exact hardware details are not available, it appears that the IRQ handled by igb_msix_other must be processed before e1000_poll_for_ack times out. However, e1000_write_posted_mbx is called with preemption disabled, leading to a scenario where the IRQ is serviced only after the failure of e1000_write_posted_mbx. To resolve this, we set IRQF_NO_THREAD for the affected interrupt, ensuring that the kernel handles it immediately, thereby preventing the aforementioned error. Reproducer: #!/bin/bash # echo 2 > /sys/class/net/ens14f0/device/sriov_numvfs ipaddr_vlan=3 nic_test=ens14f0 vf=${nic_test}v0 while true; do ip link set ${nic_test} mtu 1500 ip link set ${vf} mtu 1500 ip link set $vf up ip link set ${nic_test} vf 0 vlan ${ipaddr_vlan} ip addr add 172.30.${ipaddr_vlan}.1/24 dev ${vf} ip addr add 2021:db8:${ipaddr_vlan}::1/64 dev ${vf} if ! ip link show $vf | grep 'state UP'; then echo 'Error found' break fi ip link set $vf down done Signed-off-by: Wander Lairson Costa <wander@redhat.com> Reported-by: Yuying Ma <yuma@redhat.com> --- drivers/net/ethernet/intel/igb/igb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 1ef4cb871452..8a1696d7289f 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -907,7 +907,7 @@ static int igb_request_msix(struct igb_adapter *adapter) int i, err = 0, vector = 0, free_vector = 0; err = request_irq(adapter->msix_entries[vector].vector, - igb_msix_other, 0, netdev->name, adapter); + igb_msix_other, IRQF_NO_THREAD, netdev->name, adapter); if (err) goto err_out; -- 2.46.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other 2024-09-20 18:59 ` [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other Wander Lairson Costa @ 2024-09-23 9:07 ` Przemek Kitszel 0 siblings, 0 replies; 10+ messages in thread From: Przemek Kitszel @ 2024-09-23 9:07 UTC (permalink / raw) To: Wander Lairson Costa Cc: Yuying Ma, Tony Nguyen, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, moderated list:INTEL ETHERNET DRIVERS, open list:NETWORKING DRIVERS, open list On 9/20/24 20:59, Wander Lairson Costa wrote: > During testing of SR-IOV, Red Hat QE encountered an issue where the > ip link up command intermittently fails for the igbvf interfaces when > using the PREEMPT_RT variant. Investigation revealed that > e1000_write_posted_mbx returns an error due to the lack of an ACK > from e1000_poll_for_ack. > > The underlying issue arises from the fact that IRQs are threaded by > default under PREEMPT_RT. While the exact hardware details are not > available, it appears that the IRQ handled by igb_msix_other must > be processed before e1000_poll_for_ack times out. However, > e1000_write_posted_mbx is called with preemption disabled, leading > to a scenario where the IRQ is serviced only after the failure of > e1000_write_posted_mbx. > > To resolve this, we set IRQF_NO_THREAD for the affected interrupt, > ensuring that the kernel handles it immediately, thereby preventing > the aforementioned error. > > Reproducer: > > #!/bin/bash > > # echo 2 > /sys/class/net/ens14f0/device/sriov_numvfs > ipaddr_vlan=3 > nic_test=ens14f0 > vf=${nic_test}v0 > > while true; do > ip link set ${nic_test} mtu 1500 > ip link set ${vf} mtu 1500 > ip link set $vf up > ip link set ${nic_test} vf 0 vlan ${ipaddr_vlan} > ip addr add 172.30.${ipaddr_vlan}.1/24 dev ${vf} > ip addr add 2021:db8:${ipaddr_vlan}::1/64 dev ${vf} > if ! ip link show $vf | grep 'state UP'; then > echo 'Error found' > break > fi > ip link set $vf down > done > > Signed-off-by: Wander Lairson Costa <wander@redhat.com> > Reported-by: Yuying Ma <yuma@redhat.com> > --- > drivers/net/ethernet/intel/igb/igb_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c > index 1ef4cb871452..8a1696d7289f 100644 > --- a/drivers/net/ethernet/intel/igb/igb_main.c > +++ b/drivers/net/ethernet/intel/igb/igb_main.c > @@ -907,7 +907,7 @@ static int igb_request_msix(struct igb_adapter *adapter) > int i, err = 0, vector = 0, free_vector = 0; > > err = request_irq(adapter->msix_entries[vector].vector, > - igb_msix_other, 0, netdev->name, adapter); > + igb_msix_other, IRQF_NO_THREAD, netdev->name, adapter); > if (err) > goto err_out; > Thank you for small, localized fix with a good description. Our VAL will check it also on non-RT OS. Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> PS: for future intel ethernet submissions please split out fixes and refactors, and tag each commit with the [iwl-net] or [iwl-next] tags ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] igbvf: remove unused spinlock 2024-09-20 18:59 [PATCH 0/2] Fixes in igbvf driver Wander Lairson Costa 2024-09-20 18:59 ` [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other Wander Lairson Costa @ 2024-09-20 18:59 ` Wander Lairson Costa 2024-09-21 12:52 ` [Intel-wired-lan] " Paul Menzel 1 sibling, 1 reply; 10+ messages in thread From: Wander Lairson Costa @ 2024-09-20 18:59 UTC (permalink / raw) To: Tony Nguyen, Przemek Kitszel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, moderated list:INTEL ETHERNET DRIVERS, open list:NETWORKING DRIVERS, open list Cc: Wander Lairson Costa tx_queue_lock and stats_lock are declared and initialized, but never used. Remove them. Signed-off-by: Wander Lairson Costa <wander@redhat.com> --- drivers/net/ethernet/intel/igbvf/igbvf.h | 3 --- drivers/net/ethernet/intel/igbvf/netdev.c | 3 --- 2 files changed, 6 deletions(-) diff --git a/drivers/net/ethernet/intel/igbvf/igbvf.h b/drivers/net/ethernet/intel/igbvf/igbvf.h index 6ad35a00a287..ca6e44245a7b 100644 --- a/drivers/net/ethernet/intel/igbvf/igbvf.h +++ b/drivers/net/ethernet/intel/igbvf/igbvf.h @@ -169,8 +169,6 @@ struct igbvf_adapter { u16 link_speed; u16 link_duplex; - spinlock_t tx_queue_lock; /* prevent concurrent tail updates */ - /* track device up/down/testing state */ unsigned long state; @@ -220,7 +218,6 @@ struct igbvf_adapter { /* OS defined structs */ struct net_device *netdev; struct pci_dev *pdev; - spinlock_t stats_lock; /* prevent concurrent stats updates */ /* structs defined in e1000_hw.h */ struct e1000_hw hw; diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index 925d7286a8ee..02044aa2181b 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c @@ -1656,12 +1656,9 @@ static int igbvf_sw_init(struct igbvf_adapter *adapter) if (igbvf_alloc_queues(adapter)) return -ENOMEM; - spin_lock_init(&adapter->tx_queue_lock); - /* Explicitly disable IRQ since the NIC can be in any state. */ igbvf_irq_disable(adapter); - spin_lock_init(&adapter->stats_lock); spin_lock_init(&adapter->hw.mbx_lock); set_bit(__IGBVF_DOWN, &adapter->state); -- 2.46.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-20 18:59 ` [PATCH 2/2] igbvf: remove unused spinlock Wander Lairson Costa @ 2024-09-21 12:52 ` Paul Menzel 2024-09-23 9:02 ` Przemek Kitszel 0 siblings, 1 reply; 10+ messages in thread From: Paul Menzel @ 2024-09-21 12:52 UTC (permalink / raw) To: Wander Lairson Costa Cc: Tony Nguyen, Przemek Kitszel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel Dear Wander, Thank you for your patch. Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: > tx_queue_lock and stats_lock are declared and initialized, but never > used. Remove them. > > Signed-off-by: Wander Lairson Costa <wander@redhat.com> It’d be great if you added a Fixes: tag. > --- > drivers/net/ethernet/intel/igbvf/igbvf.h | 3 --- > drivers/net/ethernet/intel/igbvf/netdev.c | 3 --- > 2 files changed, 6 deletions(-) > > diff --git a/drivers/net/ethernet/intel/igbvf/igbvf.h b/drivers/net/ethernet/intel/igbvf/igbvf.h > index 6ad35a00a287..ca6e44245a7b 100644 > --- a/drivers/net/ethernet/intel/igbvf/igbvf.h > +++ b/drivers/net/ethernet/intel/igbvf/igbvf.h > @@ -169,8 +169,6 @@ struct igbvf_adapter { > u16 link_speed; > u16 link_duplex; > > - spinlock_t tx_queue_lock; /* prevent concurrent tail updates */ > - > /* track device up/down/testing state */ > unsigned long state; > > @@ -220,7 +218,6 @@ struct igbvf_adapter { > /* OS defined structs */ > struct net_device *netdev; > struct pci_dev *pdev; > - spinlock_t stats_lock; /* prevent concurrent stats updates */ > > /* structs defined in e1000_hw.h */ > struct e1000_hw hw; > diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c > index 925d7286a8ee..02044aa2181b 100644 > --- a/drivers/net/ethernet/intel/igbvf/netdev.c > +++ b/drivers/net/ethernet/intel/igbvf/netdev.c > @@ -1656,12 +1656,9 @@ static int igbvf_sw_init(struct igbvf_adapter *adapter) > if (igbvf_alloc_queues(adapter)) > return -ENOMEM; > > - spin_lock_init(&adapter->tx_queue_lock); > - > /* Explicitly disable IRQ since the NIC can be in any state. */ > igbvf_irq_disable(adapter); > > - spin_lock_init(&adapter->stats_lock); > spin_lock_init(&adapter->hw.mbx_lock); > > set_bit(__IGBVF_DOWN, &adapter->state); With that addressed: Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> Kind regards, Paul ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-21 12:52 ` [Intel-wired-lan] " Paul Menzel @ 2024-09-23 9:02 ` Przemek Kitszel 2024-09-23 16:46 ` Wander Lairson Costa 0 siblings, 1 reply; 10+ messages in thread From: Przemek Kitszel @ 2024-09-23 9:02 UTC (permalink / raw) To: Paul Menzel, Wander Lairson Costa Cc: Tony Nguyen, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel On 9/21/24 14:52, Paul Menzel wrote: > Dear Wander, > > > Thank you for your patch. > > Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: >> tx_queue_lock and stats_lock are declared and initialized, but never >> used. Remove them. >> >> Signed-off-by: Wander Lairson Costa <wander@redhat.com> > > It’d be great if you added a Fixes: tag. Alternatively you could split this series into two, and send this patch to iwl-next tree, without the fixes tag. For me this patch is just a cleanup, not a fix. > [...] > > With that addressed: > > Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> > > > Kind regards, > > Paul ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-23 9:02 ` Przemek Kitszel @ 2024-09-23 16:46 ` Wander Lairson Costa 2024-09-23 18:44 ` Tony Nguyen 0 siblings, 1 reply; 10+ messages in thread From: Wander Lairson Costa @ 2024-09-23 16:46 UTC (permalink / raw) To: Przemek Kitszel Cc: Paul Menzel, Tony Nguyen, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel On Mon, Sep 23, 2024 at 6:04 AM Przemek Kitszel <przemyslaw.kitszel@intel.com> wrote: > > On 9/21/24 14:52, Paul Menzel wrote: > > Dear Wander, > > > > > > Thank you for your patch. > > > > Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: > >> tx_queue_lock and stats_lock are declared and initialized, but never > >> used. Remove them. > >> > >> Signed-off-by: Wander Lairson Costa <wander@redhat.com> > > > > It’d be great if you added a Fixes: tag. > > Alternatively you could split this series into two, and send this patch > to iwl-next tree, without the fixes tag. For me this patch is just > a cleanup, not a fix. > > > > Should I send a new version of the patches separately? > [...] > > > > > With that addressed: > > > > Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> > > > > > > Kind regards, > > > > Paul > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-23 16:46 ` Wander Lairson Costa @ 2024-09-23 18:44 ` Tony Nguyen 2024-09-24 11:21 ` Wander Lairson Costa 0 siblings, 1 reply; 10+ messages in thread From: Tony Nguyen @ 2024-09-23 18:44 UTC (permalink / raw) To: Wander Lairson Costa, Przemek Kitszel Cc: Paul Menzel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel On 9/23/2024 9:46 AM, Wander Lairson Costa wrote: > On Mon, Sep 23, 2024 at 6:04 AM Przemek Kitszel > <przemyslaw.kitszel@intel.com> wrote: >> >> On 9/21/24 14:52, Paul Menzel wrote: >>> Dear Wander, >>> >>> >>> Thank you for your patch. >>> >>> Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: >>>> tx_queue_lock and stats_lock are declared and initialized, but never >>>> used. Remove them. >>>> >>>> Signed-off-by: Wander Lairson Costa <wander@redhat.com> >>> >>> It’d be great if you added a Fixes: tag. >> >> Alternatively you could split this series into two, and send this patch >> to iwl-next tree, without the fixes tag. For me this patch is just >> a cleanup, not a fix. >> >>> >> > > Should I send a new version of the patches separately? The patches apply to the respective trees when split out so I can take these without a re-send. Patch 1 will need a Fixes: for it though... I'm seeing it as: 9d5c824399de ("igb: PCI-Express 82575 Gigabit Ethernet driver")? Thanks, Tony >> [...] >> >>> >>> With that addressed: >>> >>> Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> >>> >>> >>> Kind regards, >>> >>> Paul >> > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-23 18:44 ` Tony Nguyen @ 2024-09-24 11:21 ` Wander Lairson Costa 2024-10-21 22:57 ` Jacob Keller 0 siblings, 1 reply; 10+ messages in thread From: Wander Lairson Costa @ 2024-09-24 11:21 UTC (permalink / raw) To: Tony Nguyen Cc: Przemek Kitszel, Paul Menzel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel On Mon, Sep 23, 2024 at 3:44 PM Tony Nguyen <anthony.l.nguyen@intel.com> wrote: > > > > On 9/23/2024 9:46 AM, Wander Lairson Costa wrote: > > On Mon, Sep 23, 2024 at 6:04 AM Przemek Kitszel > > <przemyslaw.kitszel@intel.com> wrote: > >> > >> On 9/21/24 14:52, Paul Menzel wrote: > >>> Dear Wander, > >>> > >>> > >>> Thank you for your patch. > >>> > >>> Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: > >>>> tx_queue_lock and stats_lock are declared and initialized, but never > >>>> used. Remove them. > >>>> > >>>> Signed-off-by: Wander Lairson Costa <wander@redhat.com> > >>> > >>> It’d be great if you added a Fixes: tag. > >> > >> Alternatively you could split this series into two, and send this patch > >> to iwl-next tree, without the fixes tag. For me this patch is just > >> a cleanup, not a fix. > >> > >>> > >> > > > > Should I send a new version of the patches separately? > > The patches apply to the respective trees when split out so I can take > these without a re-send. Patch 1 will need a Fixes: for it though... > > I'm seeing it as: 9d5c824399de ("igb: PCI-Express 82575 Gigabit Ethernet > driver")? > Can you add the tag when you apply the patch or should I add it? > Thanks, > Tony > > >> [...] > >> > >>> > >>> With that addressed: > >>> > >>> Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> > >>> > >>> > >>> Kind regards, > >>> > >>> Paul > >> > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-wired-lan] [PATCH 2/2] igbvf: remove unused spinlock 2024-09-24 11:21 ` Wander Lairson Costa @ 2024-10-21 22:57 ` Jacob Keller 0 siblings, 0 replies; 10+ messages in thread From: Jacob Keller @ 2024-10-21 22:57 UTC (permalink / raw) To: Wander Lairson Costa, Tony Nguyen Cc: Przemek Kitszel, Paul Menzel, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, intel-wired-lan, netdev, linux-kernel On 9/24/2024 4:21 AM, Wander Lairson Costa wrote: > On Mon, Sep 23, 2024 at 3:44 PM Tony Nguyen <anthony.l.nguyen@intel.com> wrote: >> >> >> >> On 9/23/2024 9:46 AM, Wander Lairson Costa wrote: >>> On Mon, Sep 23, 2024 at 6:04 AM Przemek Kitszel >>> <przemyslaw.kitszel@intel.com> wrote: >>>> >>>> On 9/21/24 14:52, Paul Menzel wrote: >>>>> Dear Wander, >>>>> >>>>> >>>>> Thank you for your patch. >>>>> >>>>> Am 20.09.24 um 20:59 schrieb Wander Lairson Costa: >>>>>> tx_queue_lock and stats_lock are declared and initialized, but never >>>>>> used. Remove them. >>>>>> >>>>>> Signed-off-by: Wander Lairson Costa <wander@redhat.com> >>>>> >>>>> It’d be great if you added a Fixes: tag. >>>> >>>> Alternatively you could split this series into two, and send this patch >>>> to iwl-next tree, without the fixes tag. For me this patch is just >>>> a cleanup, not a fix. >>>> >>>>> >>>> >>> >>> Should I send a new version of the patches separately? >> >> The patches apply to the respective trees when split out so I can take >> these without a re-send. Patch 1 will need a Fixes: for it though... >> >> I'm seeing it as: 9d5c824399de ("igb: PCI-Express 82575 Gigabit Ethernet >> driver")? >> > > Can you add the tag when you apply the patch or should I add it? > I will add the fixes tag when I said it. Thanks, Jake ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-10-21 22:57 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-09-20 18:59 [PATCH 0/2] Fixes in igbvf driver Wander Lairson Costa 2024-09-20 18:59 ` [PATCH 1/2] igb: Disable threaded IRQ for igb_msix_other Wander Lairson Costa 2024-09-23 9:07 ` Przemek Kitszel 2024-09-20 18:59 ` [PATCH 2/2] igbvf: remove unused spinlock Wander Lairson Costa 2024-09-21 12:52 ` [Intel-wired-lan] " Paul Menzel 2024-09-23 9:02 ` Przemek Kitszel 2024-09-23 16:46 ` Wander Lairson Costa 2024-09-23 18:44 ` Tony Nguyen 2024-09-24 11:21 ` Wander Lairson Costa 2024-10-21 22:57 ` Jacob Keller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).