linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: build failure after merge of the hmm tree
@ 2019-09-02 10:50 Stephen Rothwell
  2019-09-02 10:51 ` Jason Gunthorpe
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2019-09-02 10:50 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Linux Next Mailing List, Linux Kernel Mailing List, Dan Williams,
	Christoph Hellwig

[-- Attachment #1: Type: text/plain, Size: 3851 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

ERROR: "__nd_driver_register" [drivers/dax/pmem/dax_pmem_compat.ko] undefined!
ERROR: "nvdimm_namespace_common_probe" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "devm_nsio_disable" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "devm_nsio_enable" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "nvdimm_setup_pfn" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "to_nd_dax" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "to_nd_region" [drivers/dax/pmem/dax_pmem_core.ko] undefined!
ERROR: "__nd_driver_register" [drivers/dax/pmem/dax_pmem.ko] undefined!
ERROR: "nvdimm_cmd_mask" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_blk_region_provider_data" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_blk_region_to_dimm" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_bus_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_fletcher64" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_blk_region_set_provider_data" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_kobj" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_pmem_region_create" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_cmd_in_size" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_region_dev" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_bus_register" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_to_bus" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_numa_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_in_overwrite" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_flush" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_region_acquire_lane" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_provider_data" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_volatile_region_create" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "devm_nvdimm_memremap" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_region_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nvdimm_bus_dev" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_name" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_blk_memremap_flags" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_bus_unregister" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_cmd_dimm_desc" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_mapping_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_cmd_out_size" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_region_release_lane" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_device_attribute_group" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nd_desc" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_has_flush" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nvdimm_bus" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_bus_check_dimm_count" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nd_region" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "__nvdimm_create" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nvdimm" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_cmd_bus_desc" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_bus_add_badrange" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nd_region_provider_data" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "to_nd_blk_region" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_region_notify" [drivers/acpi/nfit/nfit.ko] undefined!
ERROR: "nvdimm_blk_region_create" [drivers/acpi/nfit/nfit.ko] undefined!

Caused by commit

  126470c8a58b ("libnvdimm: Enable unit test infrastructure compile checks")

I have reverted that commit for today.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the hmm tree
@ 2021-08-23  7:50 Stephen Rothwell
  2021-08-23 17:33 ` Jason Gunthorpe
  2021-09-01 22:01 ` Stephen Rothwell
  0 siblings, 2 replies; 21+ messages in thread
From: Stephen Rothwell @ 2021-08-23  7:50 UTC (permalink / raw)
  To: Jason Gunthorpe, Dave Airlie, DRI
  Cc: Jason Gunthorpe, Jason Gunthorpe, Leon Romanovsky, Maor Gottlieb,
	Maarten Lankhorst, Thomas Hellström,
	Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 2538 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

drivers/gpu/drm/i915/gem/i915_gem_ttm.c: In function 'i915_ttm_tt_get_st':
drivers/gpu/drm/i915/gem/i915_gem_ttm.c:396:7: error: implicit declaration of function '__sg_alloc_table_from_pages'; did you mean 'sg_alloc_table_from_pages'? [-Werror=implicit-function-declaration]
  396 |  sg = __sg_alloc_table_from_pages
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |       sg_alloc_table_from_pages
drivers/gpu/drm/i915/gem/i915_gem_ttm.c:396:5: warning: assignment to 'struct scatterlist *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  396 |  sg = __sg_alloc_table_from_pages
      |     ^

Caused by commit

  fcbfe956561b ("lib/scatterlist: Provide a dedicated function to support table append")

interacting with commit

  213d50927763 ("drm/i915/ttm: Introduce a TTM i915 gem object backend")

from the drm tree.

I have applied the following merge resolution patch.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 23 Aug 2021 17:46:27 +1000
Subject: [PATCH] drm/i915/ttm: fix up for "lib/scatterlist: Provide a
 dedicated function to support tableappend"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 771eb2963123..d3d95934a047 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -382,7 +382,6 @@ i915_ttm_region(struct ttm_device *bdev, int ttm_mem_type)
 static struct sg_table *i915_ttm_tt_get_st(struct ttm_tt *ttm)
 {
 	struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm);
-	struct scatterlist *sg;
 	struct sg_table *st;
 	int ret;
 
@@ -393,13 +392,13 @@ static struct sg_table *i915_ttm_tt_get_st(struct ttm_tt *ttm)
 	if (!st)
 		return ERR_PTR(-ENOMEM);
 
-	sg = __sg_alloc_table_from_pages
+	ret = sg_alloc_table_from_pages_segment
 		(st, ttm->pages, ttm->num_pages, 0,
 		 (unsigned long)ttm->num_pages << PAGE_SHIFT,
-		 i915_sg_segment_size(), NULL, 0, GFP_KERNEL);
-	if (IS_ERR(sg)) {
+		 i915_sg_segment_size(), GFP_KERNEL);
+	if (ret) {
 		kfree(st);
-		return ERR_CAST(sg);
+		return ERR_PTR(ret);
 	}
 
 	ret = dma_map_sgtable(i915_tt->dev, st, DMA_BIDIRECTIONAL, 0);
-- 
2.32.0

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the hmm tree
@ 2020-10-06  9:35 Stephen Rothwell
  2020-10-06 16:41 ` Jason Gunthorpe
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2020-10-06  9:35 UTC (permalink / raw)
  To: Jason Gunthorpe, Dave Airlie, DRI
  Cc: Leon Romanovsky, Maor Gottlieb, Gerd Hoffmann,
	Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 1826 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:


Caused by commit

  07da1223ec93 ("lib/scatterlist: Add support in dynamic allocation of SG table from pages")

interacting with commit

  707d561f77b5 ("drm: allow limiting the scatter list size.")

from the drm tree.

I have added the following merge fix patch

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 6 Oct 2020 20:22:51 +1100
Subject: [PATCH] lib/scatterlist: merge fix for "drm: allow limiting the
 scatter list size."

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/gpu/drm/drm_prime.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
index 11fe9ff76fd5..83ac901b65a2 100644
--- a/drivers/gpu/drm/drm_prime.c
+++ b/drivers/gpu/drm/drm_prime.c
@@ -807,6 +807,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
 				       struct page **pages, unsigned int nr_pages)
 {
 	struct sg_table *sg = NULL;
+	struct scatterlist *sl;
 	size_t max_segment = 0;
 	int ret;
 
@@ -820,11 +821,13 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
 		max_segment = dma_max_mapping_size(dev->dev);
 	if (max_segment == 0 || max_segment > SCATTERLIST_MAX_SEGMENT)
 		max_segment = SCATTERLIST_MAX_SEGMENT;
-	ret = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
+	sl = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
 					  nr_pages << PAGE_SHIFT,
-					  max_segment, GFP_KERNEL);
-	if (ret)
+					  max_segment, NULL, 0, GFP_KERNEL);
+	if (IS_ERR(sl)) {
+		ret = PTR_ERR(sl);
 		goto out;
+	}
 
 	return sg;
 out:
-- 
2.28.0


I assume that there may be more needed.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the hmm tree
@ 2019-11-14  5:34 Stephen Rothwell
  2019-11-14 12:58 ` Jason Gunthorpe
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2019-11-14  5:34 UTC (permalink / raw)
  To: Jason Gunthorpe; +Cc: Linux Next Mailing List, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 2796 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

drivers/infiniband/hw/hfi1/user_exp_rcv.c: In function 'set_rcvarray_entry':
drivers/infiniband/hw/hfi1/user_exp_rcv.c:768:33: warning: passing argument 2 of 'mmu_interval_notifier_insert' makes pointer from integer without a cast [-Wint-conversion]
  768 |    &node->notifier, tbuf->vaddr + (pageidx * PAGE_SIZE),
      |                     ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
      |                                 |
      |                                 long unsigned int
In file included from include/rdma/ib_verbs.h:59,
                 from include/rdma/ib_hdrs.h:53,
                 from drivers/infiniband/hw/hfi1/hfi.h:68,
                 from drivers/infiniband/hw/hfi1/mmu_rb.h:50,
                 from drivers/infiniband/hw/hfi1/user_exp_rcv.c:50:
include/linux/mmu_notifier.h:295:24: note: expected 'struct mm_struct *' but argument is of type 'long unsigned int'
  295 |      struct mm_struct *mm, unsigned long start,
      |      ~~~~~~~~~~~~~~~~~~^~
drivers/infiniband/hw/hfi1/user_exp_rcv.c:769:26: warning: passing argument 4 of 'mmu_interval_notifier_insert' makes integer from pointer without a cast [-Wint-conversion]
  769 |    npages * PAGE_SIZE, fd->mm);
      |                        ~~^~~~
      |                          |
      |                          struct mm_struct *
In file included from include/rdma/ib_verbs.h:59,
                 from include/rdma/ib_hdrs.h:53,
                 from drivers/infiniband/hw/hfi1/hfi.h:68,
                 from drivers/infiniband/hw/hfi1/mmu_rb.h:50,
                 from drivers/infiniband/hw/hfi1/user_exp_rcv.c:50:
include/linux/mmu_notifier.h:296:20: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
  296 |      unsigned long length,
      |      ~~~~~~~~~~~~~~^~~~~~
drivers/infiniband/hw/hfi1/user_exp_rcv.c:767:9: error: too few arguments to function 'mmu_interval_notifier_insert'
  767 |   ret = mmu_interval_notifier_insert(
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/rdma/ib_verbs.h:59,
                 from include/rdma/ib_hdrs.h:53,
                 from drivers/infiniband/hw/hfi1/hfi.h:68,
                 from drivers/infiniband/hw/hfi1/mmu_rb.h:50,
                 from drivers/infiniband/hw/hfi1/user_exp_rcv.c:50:
include/linux/mmu_notifier.h:294:5: note: declared here
  294 | int mmu_interval_notifier_insert(struct mmu_interval_notifier *mni,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

  c90dad714405 ("RDMA/hfi1: Use mmu_interval_notifier_insert for user_exp_rcv")

I have used the hmm tree from next-20191113 for today.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the hmm tree
@ 2019-07-01 11:33 Stephen Rothwell
  2019-07-01 23:10 ` Jason Gunthorpe
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2019-07-01 11:33 UTC (permalink / raw)
  To: Jason Gunthorpe, Dave Airlie, DRI
  Cc: Linux Next Mailing List, Linux Kernel Mailing List, Philip Yang,
	Alex Deucher

[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

mm/hmm.c: In function 'hmm_get_or_create':
mm/hmm.c:50:2: error: implicit declaration of function 'lockdep_assert_held_exclusive'; did you mean 'lockdep_assert_held_once'? [-Werror=implicit-function-declaration]
  lockdep_assert_held_exclusive(&mm->mmap_sem);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lockdep_assert_held_once
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c: In function 'amdgpu_ttm_tt_get_user_pages':
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:778:28: error: passing argument 2 of 'hmm_range_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
  hmm_range_register(range, mm, start,
                            ^~
In file included from drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c:35:
include/linux/hmm.h:464:29: note: expected 'struct hmm_mirror *' but argument is of type 'struct mm_struct *'
          struct hmm_mirror *mirror,
          ~~~~~~~~~~~~~~~~~~~^~~~~~

Caused by commit

  e36acfe6c86d ("mm/hmm: Use hmm_mirror not mm as an argument for hmm_range_register")

interacting with commit

  66c45500bfdc ("drm/amdgpu: use new HMM APIs and helpers")

from the drm tree.

All I could do for now was to mark the AMDGPU driver broken.  Please
submit a merge for for me (and later Linus) to use.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the hmm tree
@ 2019-07-01 11:08 Stephen Rothwell
  2019-07-09  0:21 ` Stephen Rothwell
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2019-07-01 11:08 UTC (permalink / raw)
  To: Jason Gunthorpe, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Peter Zijlstra
  Cc: Linux Next Mailing List, Linux Kernel Mailing List, Nikolay Borisov

[-- Attachment #1: Type: text/plain, Size: 1856 bytes --]

Hi all,

After merging the hmm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

mm/hmm.c: In function 'hmm_get_or_create':
mm/hmm.c:50:2: error: implicit declaration of function 'lockdep_assert_held_exclusive'; did you mean 'lockdep_assert_held_once'? [-Werror=implicit-function-declaration]
  lockdep_assert_held_exclusive(&mm->mmap_sem);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lockdep_assert_held_once

Caused by commit

  8a9320b7ec5d ("mm/hmm: Simplify hmm_get_or_create and make it reliable")

interacting with commit

  9ffbe8ac05db ("locking/lockdep: Rename lockdep_assert_held_exclusive() -> lockdep_assert_held_write()")

from the tip tree.

I have added the following merge fix.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 1 Jul 2019 21:05:59 +1000
Subject: [PATCH] mm/hmm: fixup for "locking/lockdep: Rename
 lockdep_assert_held_exclusive() -> lockdep_assert_held_write()"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 mm/hmm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index c1bdcef403ee..2ddbd589b207 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -47,7 +47,7 @@ static struct hmm *hmm_get_or_create(struct mm_struct *mm)
 {
 	struct hmm *hmm;
 
-	lockdep_assert_held_exclusive(&mm->mmap_sem);
+	lockdep_assert_held_write(&mm->mmap_sem);
 
 	/* Abuse the page_table_lock to also protect mm->hmm. */
 	spin_lock(&mm->page_table_lock);
@@ -248,7 +248,7 @@ static const struct mmu_notifier_ops hmm_mmu_notifier_ops = {
  */
 int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm)
 {
-	lockdep_assert_held_exclusive(&mm->mmap_sem);
+	lockdep_assert_held_write(&mm->mmap_sem);
 
 	/* Sanity check */
 	if (!mm || !mirror || !mirror->ops)
-- 
2.20.1

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2021-09-01 22:01 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-02 10:50 linux-next: build failure after merge of the hmm tree Stephen Rothwell
2019-09-02 10:51 ` Jason Gunthorpe
2019-09-02 23:45   ` Stephen Rothwell
2019-09-03  5:31     ` Dan Williams
2019-09-03  5:42       ` Stephen Rothwell
2019-09-03 23:11         ` Dan Williams
  -- strict thread matches above, loose matches on Subject: below --
2021-08-23  7:50 Stephen Rothwell
2021-08-23 17:33 ` Jason Gunthorpe
2021-09-01 22:01 ` Stephen Rothwell
2020-10-06  9:35 Stephen Rothwell
2020-10-06 16:41 ` Jason Gunthorpe
2020-10-12  4:19   ` Stephen Rothwell
2020-10-15 21:11     ` Stephen Rothwell
2019-11-14  5:34 Stephen Rothwell
2019-11-14 12:58 ` Jason Gunthorpe
2019-07-01 11:33 Stephen Rothwell
2019-07-01 23:10 ` Jason Gunthorpe
2019-07-03  1:28   ` Alex Deucher
2019-07-01 11:08 Stephen Rothwell
2019-07-09  0:21 ` Stephen Rothwell
2019-07-09 12:32   ` Jason Gunthorpe

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).