Spring cleanup

Monday, March 20, 2017

Ran out of disk space for the first time, both on Ptitpuce (Mac laptop) and Muse (primary Linux server). In both cases, it's virtual machines that grew beyond expectations. Time to shuffle things around.

New hard disk for Muse

In the case of Muse, the boot hard disk was not just too small, it's also showing signs of old age. Time to upgrade it. I purchased a 3TB hard disk. Time to install and setup the machine with it.

Installed Fedora 25 for the n-th time, then copied the VMs over. It's taking quite a bit of time, these are large files.

VirtIO GPU WDDM driver

Looked at the initial commit shared by Vadim.

Explored the code a little.

QXL-DOD driver

Code review of a patch from Yuri made me really look at that code for the first time.

There are (pre-existing) leaks everywhere in error cases, need to address that. For instance, consider:

    delete [] reinterpret_cast(m_ModeInfo);
    delete [] reinterpret_cast(m_ModeNumbers);
    m_ModeInfo = NULL;
    m_ModeNumbers = NULL;

    m_ModeInfo = reinterpret_cast (new (PagedPool) BYTE[sizeof (VIDEO_MODE_INFORMATION) * ModeCount]);
    if (!m_ModeInfo)
    {
        Status = STATUS_NO_MEMORY;
        DbgPrint(TRACE_LEVEL_ERROR, ("VgaDevice::GetModeList failed to allocate m_ModeInfo memoryn"));
        return Status;
    }
    RtlZeroMemory(m_ModeInfo, sizeof (VIDEO_MODE_INFORMATION) * ModeCount);

    m_ModeNumbers = reinterpret_cast (new (PagedPool)  BYTE [sizeof (USHORT) * ModeCount]);
    if (!m_ModeNumbers)
    {
        Status = STATUS_NO_MEMORY;
        DbgPrint(TRACE_LEVEL_ERROR, ("VgaDevice::GetModeList failed to allocate m_ModeNumbers memoryn"));

/// HERE: We do not free m_ModeInfo return Status; }

Also, the .gitattributes file for the repository seems all wrong to me (oh no, reminds me of DxO again!), with all files carefully marked as "not text". I really don't understand why.

#These files have CRLF line endings, git shouldn't attempt to change that.

qxldod[[:space:]]Package/qxldod[[:space:]]Package.vcxproj -text qxldod[[:space:]]Package/qxldod[[:space:]]Package.vcxproj.filters -text qxldod.sln -text qxldod/BaseObject.cpp -text qxldod/BaseObject.h -text qxldod/QxlDod.cpp -text qxldod/QxlDod.h -text qxldod/buildAll.bat -text qxldod/clean.bat -text qxldod/driver.cpp -text qxldod/driver.h -text qxldod/qxldod.vcxproj -text qxldod/resource.h -text

PC configuration

Selected a desktop PC configuration. For now, my choice would be:

ABB - Europe-wide - English Localization

ABB - Europe-wide - English Localization ABB - Europe-wide - English Localization HP Z440 Workstation HP Single Unit Packaging HP Z440 700W 90 Percent Efficient Chassis HP Linux Installer Kit Operating System Load to SATA/SAS Intel Xeon E5-1650v4 3.60GHz 15MB 2400 6C CPU 32GB DDR4-2400 (2x16GB) Registered RAM NVIDIA Quadro M2000 4GB 4xDP 1st No cable included Graphics HP DisplayPort To DVI-D Adapter (2-Pack) 3TB 7200 RPM SATA 1st Hard Drive HP No Keyboard # I have those No Included Mouse 9.5mm Slim SuperMulti DVDRW 1st ODD HP Remote Graphics Software (RGS) for Z HP 3/3/3 Warranty HP Z Cooler HP Z440 Country Kit

Nice phone call

Got a nice phone call from Christophe Seyve, a photo / software guru from DxO. So many good memories. I hope he transmits my hello to the wonderful team there.