Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Engr315/Popcount_Autograder

Slow MMIO version - Stable

04 Oct 17:15
c9ed30f

Choose a tag to compare

v2.3 Autograder testing fully supported

In this release is included:

  1. A qemu binary which has a popcount hardware device, an MMIO interface and a xilinx AXIDMA hardware interface
  2. Kernel module to handle mmaping requirements for the UIO popcount device
  3. Compiled linux-5.10.4.zImage kernel image
  4. e2fs filesystem with the required binary files to run and test student user_mmio.c and user_dma.c files
  5. Makefile with the necessary commands to run said tests

This is all in an effort to streamline the grading process for projects 5 and 7.

This release should be fully stable for the solutions, and simply require the current setup of p5 and p7 in the autograder to run.

To set this image up on the autograder

  1. download the Dockerfile from the repository. To do this, either download manually from github, or run:
wget https://raw.githubusercontent.com/Engr315/Popcount_Autograder/main/Dockerfile
  1. Go to the project sandbox images, and upload the dockerfile, and build from this dockerfile.
  2. To setup the testing environment, follow the setup from P5 and P7 currently in the autograder, or see below for details on how to run tests

Running Tests.

To run the tests, the following commands must be run in the autograder.

To setup and run the tests, simply:
Begin by moving the student user_<mmio,dma>.c file to the qcomps directory:

mv *.c qcomps/

Then, move into the qcomps directory:

cd qcomps/

Next, simply run the make result target:

For MMIO:

make result TEST=mmio

for DMA

make result TEST=dma

This generates the file result which contains which file was tested, the popcount result, and the time of execution.

Next, to test the result and confirm correctness, run:

make test TEST_FILE=<zeros.bin,ones.bin,tiny.bin,small.bin,medium.bin,large.bin>

This will check to see if the number of ones counted in each of those files matches ground truth.

Finally, to check the time of the command to confirm that dma was used (it will be faster than MMIO in every case so long as the student code is suitably decent and does not contain any glaring issues), run:

make test_time TEST_TIME=<value>

where value is what ever a decent mid value time is on the system. In the autograder, for our purposes value=1 seems to work well, but your performance may differ.

Autograder Test for MMIO slowed down

03 Oct 02:27

Choose a tag to compare

Pre-release

This release includes all necessary updates for the autograder to utilize the artificially slowed mmio/dma system.

v2.1 - MMIO slowdown simulated

21 Sep 16:54

Choose a tag to compare

Pre-release

This draft release includes the slowdown of the mmio in relation to the DMA. On larger files, the mmio runs 5 times slower, but on small scales the dma is slower. this can be adjusted if desired.

v2.0 - DMA testing now included for autograder

15 Sep 19:16
bf29d0e

Choose a tag to compare

In this release, DMA is included. To use it on the autograder, first download the following files:

  1. Dockerfile
    2. docker.Makefile This has been depreciated - Only Dockerfile is required.

Now upload these to the auto grader custom sandbox imaging platform, and let the docker image build.

To run tests on the autograder, you will use:
make result TEST=<dma|mmio>

And to check output:
make test TEST_FILE=<zeros.bin|ones.bin|small.bin...>

This should work for both mmio AND DMA.

v1.1 - Generalized testing

21 Jun 22:24
4e7e0aa

Choose a tag to compare

1.1

Upgrades:
Generalized testing procedure, allowing for relative ease when adding new binary test files. All six basic tests exist, so to add new tests all that must be done is:

  1. add a new <testfile_V> Variable to the testing Makefile
  2. add new <testfile> to the data folder and run the populatefs.sh script to place new binaries in the autograder.ext2 fs
  3. use the old tar.gz to extract qcomps, replace autograder.ext2 with new ext2, and repackage into tar.gz
  4. publish a LATEST release
  5. please make a pull request with the new .bin file

v1.0

21 Jun 17:13

Choose a tag to compare

v1.0

This release includes the possibility to check each binary file individually. It currently contains zeros, ones, tiny, small, medium and large.bin

v0.3

20 Jun 21:12

Choose a tag to compare

Details

The docker image did not allow for sudo to be used in tests, so to access the files in the image, e2tools was used.

v0.2 - Docker Testing

20 Jun 20:04

Choose a tag to compare

v0.2 - For Docker Testing

This release contains the completed QEMU binaries, and test scripts for running everything fully automated via docker. This release is a test to ensure that all is working, and a subsequent release will contained a less alpha version.

qemu-package-V0.1

14 Jun 17:16

Choose a tag to compare

qemu-package-V0.1 Pre-release
Pre-release

This package contains all required items to directly run the popcount qemu system without having to build it from scratch.

This is verified for Debian only, and requires GLIBCv2.35+ as this is what is was built with.

Download the tar.gz, and either extract and run as is, or with the main Makefile run make run-from-tar and it will extract and run for you.