Message ID | 20170624021758.26815-1-vishal.l.verma@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jun 23, 2017 at 7:17 PM, Vishal Verma <vishal.l.verma@intel.com> wrote: > With the BTT 2.0 update, a couple of minor updates to the unit tests are > needed: > test/libndctl: Update expected BTT sizes > test/libndctl: in btt_autodetect, when wiping an old BTT, wipe the first > two 4K pages instead of one. > > Cc: Dan Williams <dan.j.williams@intel.com> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> > --- > test/libndctl.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/test/libndctl.c b/test/libndctl.c > index 24aff36..89c4c02 100644 > --- a/test/libndctl.c > +++ b/test/libndctl.c > @@ -994,16 +994,16 @@ static int check_btt_size(struct ndctl_btt *btt) > int size_select, sect_select; > unsigned long long expect_table[][2] = { > [0] = { > - [0] = 0x11b4400, > - [1] = 0x8da2000, > + [0] = 0x11b5400, > + [1] = 0x8daa000, > }, > [1] = { > - [0] = 0x13b0400, > - [1] = 0x9d82000, > + [0] = 0x13b1400, > + [1] = 0x9d8a000, > }, > [2] = { > - [0] = 0x1aa2600, > - [1] = 0xd513000, > + [0] = 0x1aa3600, > + [1] = 0xd51b000, I think we need to have different expectations for different BTT versions. We should be able to check for v1.2 labels before picking the expectation, or just have a new ndctl_test_attempt() gate on the 4.13 kernel for the new sizes. > }, > }; > > @@ -1517,12 +1517,19 @@ static int check_btt_autodetect(struct ndctl_bus *bus, > } > > memset(buf, 0, 4096); > + /* Delete both the first and second 4K pages */ > rc = pwrite(fd, buf, 4096, 4096); > if (rc < 4096) { > rc = -ENXIO; > fprintf(stderr, "%s: failed to overwrite btt on %s\n", > devname, bdev); > } > + rc = pwrite(fd, buf, 4096, 0); > + if (rc < 4096) { > + rc = -ENXIO; > + fprintf(stderr, "%s: failed to overwrite btt on %s\n", > + devname, bdev); > + } How about just change the first one to: "rc = pwrite(fd, buf, 8192, 0);"?
On 06/29, Dan Williams wrote: > On Fri, Jun 23, 2017 at 7:17 PM, Vishal Verma <vishal.l.verma@intel.com> wrote: > > With the BTT 2.0 update, a couple of minor updates to the unit tests are > > needed: > > test/libndctl: Update expected BTT sizes > > test/libndctl: in btt_autodetect, when wiping an old BTT, wipe the first > > two 4K pages instead of one. > > > > Cc: Dan Williams <dan.j.williams@intel.com> > > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> > > --- > > test/libndctl.c | 19 +++++++++++++------ > > 1 file changed, 13 insertions(+), 6 deletions(-) > > > > diff --git a/test/libndctl.c b/test/libndctl.c > > index 24aff36..89c4c02 100644 > > --- a/test/libndctl.c > > +++ b/test/libndctl.c > > @@ -994,16 +994,16 @@ static int check_btt_size(struct ndctl_btt *btt) > > int size_select, sect_select; > > unsigned long long expect_table[][2] = { > > [0] = { > > - [0] = 0x11b4400, > > - [1] = 0x8da2000, > > + [0] = 0x11b5400, > > + [1] = 0x8daa000, > > }, > > [1] = { > > - [0] = 0x13b0400, > > - [1] = 0x9d82000, > > + [0] = 0x13b1400, > > + [1] = 0x9d8a000, > > }, > > [2] = { > > - [0] = 0x1aa2600, > > - [1] = 0xd513000, > > + [0] = 0x1aa3600, > > + [1] = 0xd51b000, > > I think we need to have different expectations for different BTT > versions. We should be able to check for v1.2 labels before picking > the expectation, or just have a new ndctl_test_attempt() gate on the > 4.13 kernel for the new sizes. I'll make the call under a ndctl_test_atttempt. All of nfit_test will switch to 1.2 labels with the next release, so keeping support for 1.1 sizes seems pointless.. > > > }, > > }; > > > > @@ -1517,12 +1517,19 @@ static int check_btt_autodetect(struct ndctl_bus *bus, > > } > > > > memset(buf, 0, 4096); > > + /* Delete both the first and second 4K pages */ > > rc = pwrite(fd, buf, 4096, 4096); > > if (rc < 4096) { > > rc = -ENXIO; > > fprintf(stderr, "%s: failed to overwrite btt on %s\n", > > devname, bdev); > > } > > + rc = pwrite(fd, buf, 4096, 0); > > + if (rc < 4096) { > > + rc = -ENXIO; > > + fprintf(stderr, "%s: failed to overwrite btt on %s\n", > > + devname, bdev); > > + } > > How about just change the first one to: "rc = pwrite(fd, buf, 8192, 0);"? The buf that is passed in is only 4096 bytes, so I just took the easy way out and did it twice :)
diff --git a/test/libndctl.c b/test/libndctl.c index 24aff36..89c4c02 100644 --- a/test/libndctl.c +++ b/test/libndctl.c @@ -994,16 +994,16 @@ static int check_btt_size(struct ndctl_btt *btt) int size_select, sect_select; unsigned long long expect_table[][2] = { [0] = { - [0] = 0x11b4400, - [1] = 0x8da2000, + [0] = 0x11b5400, + [1] = 0x8daa000, }, [1] = { - [0] = 0x13b0400, - [1] = 0x9d82000, + [0] = 0x13b1400, + [1] = 0x9d8a000, }, [2] = { - [0] = 0x1aa2600, - [1] = 0xd513000, + [0] = 0x1aa3600, + [1] = 0xd51b000, }, }; @@ -1517,12 +1517,19 @@ static int check_btt_autodetect(struct ndctl_bus *bus, } memset(buf, 0, 4096); + /* Delete both the first and second 4K pages */ rc = pwrite(fd, buf, 4096, 4096); if (rc < 4096) { rc = -ENXIO; fprintf(stderr, "%s: failed to overwrite btt on %s\n", devname, bdev); } + rc = pwrite(fd, buf, 4096, 0); + if (rc < 4096) { + rc = -ENXIO; + fprintf(stderr, "%s: failed to overwrite btt on %s\n", + devname, bdev); + } out: ndctl_region_set_ro(region, namespace->ro); ndctl_namespace_set_raw_mode(ndns, 0);
With the BTT 2.0 update, a couple of minor updates to the unit tests are needed: test/libndctl: Update expected BTT sizes test/libndctl: in btt_autodetect, when wiping an old BTT, wipe the first two 4K pages instead of one. Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> --- test/libndctl.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-)