OSDev.org

The Place to Start for Operating System Developers
It is currently Wed Apr 17, 2024 10:51 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Thief 2 affinity crashing
PostPosted: Fri Mar 28, 2014 5:21 pm 
Offline

Joined: Thu Feb 13, 2014 5:58 am
Posts: 7
Thief 2 crashes if it has more than 1 CPU assigned. Does anybody know why is it happening? How to write windows application which will crash at multicore affinity?


Top
 Profile  
 
 Post subject: Re: Thief 2 affinity crashing
PostPosted: Fri Mar 28, 2014 6:52 pm 
Offline
Member
Member
User avatar

Joined: Wed Aug 21, 2013 3:53 am
Posts: 449
Location: Asia, Singapore
Yeah, I gues there are some complexities involved with rendering graphics on a multicore CPU, which the older games didn't take into consideration.
I was in the same situation a few days ago, couldn't play Scarface. There is a dirty trick, you disable the initialize other cores on startup in msconfig.
I wouldn't recommend touching msconfig, I did something wrong and screwed my whole Windows Installation.

_________________
"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
(R3X Runtime VM)(CHIP8 Interpreter OS)


Top
 Profile  
 
 Post subject: Re: Thief 2 affinity crashing
PostPosted: Sat Mar 29, 2014 8:58 am 
Offline
Member
Member

Joined: Tue Nov 08, 2011 11:35 am
Posts: 453
randoll wrote:
How to write windows application which will crash at multicore affinity?

I don't know about this exact application but there are some typical cases that one should keep in mind to avoid crashing on multicore configuration.
One of my typical examples: using RDTSC directly instead of doing system/library calls. TSC counter is often non-synchronized between different cores (even when they're inside one CPU) and it cannot be synchronized between separate CPUs. So when you start measurement on some core and then scheduler moves you to another one - it's possible to get negative or even zero result of (time_end - time_start). This can break some calculations and lead to exceptions.
Another common option: usage of non-reentrant/thread unsafe libraries (especially if authors tried to add some parallel computation support but didn't verify/test it enough).

Bender wrote:
There is a dirty trick, you disable the initialize other cores on startup in msconfig.
Oh, why would anyone ( who knows about `CPU affinity' ) try such a dirty trick instead of looking for a way to tell OS (AFAIR, Linux and Windows include such support) about required affinity at process start time? Yes, this way looks easier but it brings possibility of breaking your OS installation, and reinstallation is often a hard process (especially when you have done a lot of customizations but don't have space for backups).


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 74 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group