Wednesday, January 23rd 2019

Bulldozer Core-Count Debate Comes Back to Haunt AMD

AMD in 2012 launched the FX-8150, the "world's first 8-core desktop processor," or so it says on the literal tin. AMD achieved its core-count of 8 with an unconventional CPU core design. Its 8 cores are arranged in four sets of two cores each, called "modules." Each core has its own independent integer unit and L1 data cache, while the two cores share a majority of their components - the core's front-end, a branch-predictor, a 64 KB L1 code cache, a 2 MB L2 cache, but most importantly, an FPU. There was much debate across tech forums on what constitutes a CPU core.

Multiprocessor-aware operating systems had to be tweaked on how to properly address a "Bulldozer" processor. Their schedulers would initially treat "Bulldozer" cores as fully independent (as conventional logic would dictate), until AMD noticed multi-threaded application performance bottlenecks. Eventually, Windows and various *nix kernels received updates to their schedulers to treat each module as a core, and each core as an SMT unit (a logical processor). The FX-8350 is a 4-core/8-thread processor in the eyes of Windows 10, for example. These updates improved the processors' performance but not before consumers started noticing that their operating systems weren't reporting the correct core-count. In 2015, a class-action lawsuit was filed against AMD for false marketing of FX-series processors. The wheels of that lawsuit are finally moving, after a 12-member Jury is set up to examine what constitutes a CPU core, and whether an AMD FX-8000 or FX-9000 series processor can qualify as an 8-core chip.
US District Judge Haywood Gilliam of the District Court for the Northern District of California rejected AMD's claim that "a significant majority of" consumers understood what constitutes a CPU core, and that they had a fair idea of what they were buying when they bought AMD FX processors. AMD has two main options before it. The company can reach an agreement with the plaintiffs that could cost the company millions of Dollars in compensation; or fight it out in the Jury trial, by trying to prove to 12 members of the public (not necessarily from an IT background) what constitutes a CPU core and why "Bulldozer" qualifies as an 8-core silicon.

The plaintiffs and defendants each have a key technical argument. The plaintiffs could point out operating systems treating 8-core "Bulldozer" parts as 4-core/8-thread (i.e. each module as a core and each "core" as a logical processor); while the AMD could run multi-threaded floating-point benchmark tests to prove that a module cannot be simplified to the definition of a core. AMD's 2017 release of the "Zen" architecture sees a return to the conventional definition of a core, with each "Zen" core being as independent as an Intel "Skylake" core. We will keep an eye on this case.
Source: The Register
Add your own comment

369 Comments on Bulldozer Core-Count Debate Comes Back to Haunt AMD

#76
seronx
FordGT90ConceptTry to split an AMD module and you'll end up with one functional thread and one thread that's waiting for a non-existent prefetcher.
Split Bulldozer Module;
2x 2K L2 BTB
2x 256K L1 BTB
2x Branch Predictor
2x 32 KB L1i
2x 16B Fetcher/Prefetcher
2x IBB/Pick
2x 2-wide decode
2x 2 ALU/2AGU
2x 1 FMAC+1 FMMX(FMISC/FSTORE)
2x LSU
2x 16 KB L1d
2x 1 MB L2

You can easily split an Bulldozer module and get two functional cores. However, those two cores would utilize more space than the two-core module. Which in turn would provide less performance than the Bulldozer module.
Darmok N JaladBulldozer was a response to Netburst, a frequency-happy, ALU-heavy architecture with a weak FPU.
Bulldozer underlined threading technique is a response to Netburst&Nehalem/Hyperthreading. Architecturally the Bulldozer module is a successor to the K7/K8 core or a response to Pentium II Xeon/Core/Core 2.
Posted on Reply
#77
cdawall
where the hell are my stars
Shambles1980gpu and cpu cores are VERY different. i really shouldnt have to say that here..

its like saying If all cars have to have 4 wheels, what about mtorcycles?? are they not motorized vehicles now??

p.s

i know bad annalogy but what the hell. i already used up more thinking time than i should on this discussion.
Who decides that? They are still labeled as a core. If you are going to argue one core isn't a core then the definition needs to exist across the entire industry. You do not get to pick and chose who these things apply to so as terrible as your analogy was it is about perfect because it shows the basic misunderstanding that is created by a market that freely uses the term "core" to describe whatever they want.
Posted on Reply
#78
mouacyk
in the same clock cycle, how many instructions can it execute independently?
Posted on Reply
#79
Shambles1980
cdawallWho decides that? They are still labeled as a core. If you are going to argue one core isn't a core then the definition needs to exist across the entire industry. You do not get to pick and chose who these things apply to so as terrible as your analogy was it is about perfect because it shows the basic misunderstanding that is created by a market that freely uses the term "core" to describe whatever they want.
probably the same people who decided minute and minute were 2 different things even though they are a description of a measurment and yet they measure diferent thing entierly..
mouacykin the same clock cycle, how many instructions can it execute independently?
depends on what its doing. and how its scheduled. if it has 4 floating point calcs all alocated to 1 module each and 8 other tasks ..
then it can do 4..
if it has 4 floating points alocated to 2 modules and 8 other tasts alocated to the other 2 modules.
then it can do 6..
if it just had 8 instructions and no fp calcs to do..
then it could do 8.
if 1 fp calcs and 8 instructions
it could do 7
Posted on Reply
#80
cdawall
where the hell are my stars
Shambles1980probably the same people who decided minute and minute were 2 different things even though they are a description of a measurment and yet they measure diferent thing entierly..
Those both have written definitions widely publicizing what exactly they are. They both also describe 1/16th of something. One a measurement in time the other a measurement of a degree. So no it really doesn't have a different description regardless of what it's usage was.

The definition of core for usage in a PC came from the idea that it was the central most important part of the computer. Don't take my word for it though lets look up that definition,
merriam-websterthe central or most important part of something
So by that widely used definition of a core what exactly does AMD not have 8 of?
Posted on Reply
#81
Makaveli
lol jury of 12 computer illiterate people.

Just pay the money right now and don't waste any more time.
Posted on Reply
#82
Shambles1980
cdawallSo by that widely used definition of a core what exactly does AMD not have 8 of?
umm the missing parts?

any way im walking away.. feel free to use the way back machine to find all my answers to the questions you may have. then we can agree to disagree :)
Posted on Reply
#83
FordGT90Concept
"I go fast!1!11!1!"
cdawallWhich definition of a core says a core must have a fetcher per core? This is what a huge portion of the argument will live on.
Going back to Athlon 64 FX60 and Pentium D. All processors before and after Bulldozer fit the same norm of "core" = independence. AMD is not free to redefine what is known and understood.
cdawallDoes each GPU "core" have a fetch? (this is me asking on that one I have not looked that hard into the design). If they do not does both AMD and nvidia need to pay out for misrepresenting the thousands of "cores" they claim a GPU has?
GPUs are marketed by model, not architectural details like shader count. GPUs are also not CPUs by design so similarities and differences are moot.
cdawallRight now AMD is betting on the original core design was one integer core was a core. FPU came later on, if anyone makes the argument for that then Intel and Motorola produced tons of processors that had zero cores.
x87 was a co-processor much like the FPU in UltraSPARC. The CPU core in x86 was complete--it shared nothing, just outsourced floating point instructions to the coprocessor. Bulldozer's integer cores are far from complete as the diagrams show.

Said differently...
2 8086 processors can function with or without any 8087 coprocessors and, they can function physically separated.
2 UltraSPARC T1 cores can function with or without its FPU and, they can function physically separated.
2 Bulldozer integer cores can function with or without its FPU but both cannot function physically separated.
Posted on Reply
#84
cdawall
where the hell are my stars
Shambles1980umm the missing parts?
Which ones by that definition is it missing? I don't remember it listing a single requirement as to what makes up a core. That is a textbook, dictionary definition.

As it stands right now there is not a textbook answer that says a core must have the parts as follows to be sold/marketed as a core. AMD internal technical documentation written by people with multiple PHD's has labeled each integer core inside of the AMD Bulldozer design as a single core to make a total of 8. They have immensely more schooling than myself and likely the people making the claims as to what is or is not a core. Who are we to second guess what their design deems is a core when the definition is more vague as the patent apple holds for the iphone.
FordGT90ConceptGoing back to Athlon 64 FX60 and Pentium D. All processors before and after Bulldozer fit the same norm of "core" = independence. AMD is not free to redefine what is known and understood.
Under the same notion that AMD added more independence of a core by integrating the memory controller they could remove pieces. A core could not function without multiple other not attached items in multiple designs. The common ideal would be a core can fetch, decode instruction, ALU operation, access memory, update registrar, update program counter. Each integer core can do that each clock cycle with the Bulldozer design.
FordGT90ConceptGPUs are marketed by model, not architectural details like shader count. GPUs are also not CPUs by design so similarities and differences are moot.
Every single Nvidia GPU you buy has the number of CUDA Cores printed on the side of the box in the same way AMD printed the number of cores it has in it's CPU. AMD also openly publishes the number of compute cores it's GPU's contain. The functionality of all three widely vary.
FordGT90Conceptx87 was a co-processor much like the FPU in UltraSPARC. The CPU core in x86 was complete--it shared nothing, just outsourced floating point instructions to the coprocessor. Bulldozer's integer cores are far from complete as the diagrams show.
That was more to point out that the single FPU unit was mute as far as being a reason why it is only a "whatever" core CPU. Hard to share with anything when you are the only CPU on a board.
Posted on Reply
#85
Shambles1980
cdawallWhich ones by that definition is it missing? I don't remember it listing a single requirement as to what makes up a core. That is a textbook, dictionary definition.

As it stands right now there is not a textbook answer that says a core must have the parts as follows to be sold/marketed as a core. AMD internal technical documentation written by people with multiple PHD's has labeled each integer core inside of the AMD Bulldozer design as a single core to make a total of 8. They have immensely more schooling than myself and likely the people making the claims as to what is or is not a core. Who are we to second guess what their design deems is a core when the definition is more vague as the patent apple holds for the iphone.
like i said, amd defined what a core was in their oppinion. when the pentium d came out.. they werent happy it beat the 64 x2 to market.. so that kind of negates your argument a little because even by amd's deffinition they arent 8 cores. but then again they said that a pentium d wasnt dual core, but the 64 x 2 was..

we can dabble back and forth forever as to what you or i think a core is..
but when you hinge your argument on amd are better than us so they should define what a core is, and they had previously done that.. but the buldoser "cores" dont qualify..
I really dont see how you have an argument.
Posted on Reply
#86
FordGT90Concept
"I go fast!1!11!1!"
cdawallEvery single Nvidia GPU you buy has the number of CUDA Cores printed on the side of the box in the same way AMD printed the number of cores it has in it's CPU. AMD also openly publishes the number of compute cores it's GPU's contain. The functionality of all three widely vary.
Tech specs, not unlike vehicles having fuel capacity figures. They don't brandish it as being a major selling point like AMD does with the prominent display of "8-core" on the packaging...which is common with all CPU sales because it's a defining feature in this era. A vehicle similarity would be 2WD or 4WD. Something prominent to look at when comparing too similar vehicles that, as a result of that change, may perform quite different depending on conditions.
Posted on Reply
#87
Metroid
Few days ago I thought I was wrong when I said the 6/8 cores cpus amd launched few years ago were just a marketing gimmick, now we see this news and the lawsuit. I wonder which one is right and if i was really wrong about it, some people here said it was real cores, I still wonder about if is true or not. It's all a mess.
Posted on Reply
#88
cdawall
where the hell are my stars
Shambles1980like i said, amd defined what a core was in their oppinion. when the pentium d came out.. they werent happy it beat the 64 x2 to market.. so that kind of negates your argument a little because even by amd's deffinition they arent 8 cores. but then again they said that a pentium d wasnt dual core, but the 64 x 2 was..

we can dabble back and forth forever as to what you or i think a core is..
but when you hinge your argument on amd are better than us so they should define what a core is, and they had previously done that.. but the buldoser "cores" dont qualify..
I really dont see how you have an argument.
So you are saying that AMD can redefine and has redefined what a core is a total of 2 or 3 times now, but this last time it doesn't count and they cannot do that. The other times however? Those were perfectly fine.
FordGT90ConceptTech specs, not unlike vehicles having fuel capacity figures. They don't brandish it as being a major selling point like AMD does with the prominent display of "8-core" on the packaging...which is common with all CPU sales because it's a defining feature in this era. A vehicle similarity would be 2WD or 4WD. Something prominent to look at when comparing too similar vehicles that, as a result of that change, may perform quite different depending on conditions.


Nvidia quite literally has the number of CUDA cores as the highest defining item when comparing a GPU within a series. I would say the first thing listed on their companies website would be the major selling point of the product.
Posted on Reply
#89
FordGT90Concept
"I go fast!1!11!1!"
So everyone should buy Vega 64 because it has 4096 "cores." :laugh: You know it doesn't work that way. Again, "specs" aka details. Cores for CPUs aren't details, they're defining features. When people buy a GPU, they're not looking for cores, or clockspeed, or anything in particular (well maybe VRAM amount), they're looking at the model: e.g. GTX 1080. Just go to Amazon or Newegg and look at what is in the title. CPUs prominently advertise their core count where GPUs do not. From Newegg:



Take a step back and look at the bigger picture. AMD was perfectly happy using the word "modules" to define the dual integer core package. Why did they deviate from sticking "4 module" on their FX processors? Because "module" isn't something most people understand but core is. AMD didn't want to stick "4 core" on their boxes because they want to advertise that it has more than Intel's "4 core" processors. So they went with "8 core," not because of the truthfulness of the declaration, but to make people looking at processors consider AMD's product over Intel's because "more is better." That's what false advertising is though: declaring your product having more than it really does.
Posted on Reply
#90
Shambles1980
cdawallSo you are saying that AMD can redefine and has redefined what a core is a total of 2 or 3 times now, but this last time it doesn't count and they cannot do that. The other times however? Those were perfectly fine.
the only 1 here saying amd can define what a core is is you..
Its abundantly clear amd can and has repetedly changed their definition of "core" to suit marketing, and bamboozle customers.. which is the actuall issue here. and you even nye on admit it in the above quoted post..

and this is why i say we have to agree to disagree..
you just 100% argued your case away in 2 posts and yet im to continue debating??
Posted on Reply
#91
cdawall
where the hell are my stars
FordGT90ConceptSo everyone should buy Vega 64 because it has 4096 "cores." :laugh: You know it doesn't work that way. Again, "specs" aka details. Cores for CPUs aren't details, they're defining features. The reason why one processor is $50 and another is $10,000. When people buy a GPU, they're not looking for cores, or clockspeed, or anything in particular, they're looking at the model: e.g. GTX 1080.


Take a step back and look at the bigger picture. AMD was perfectly happy using the word "modules" to define the dual integer core package. Why did they deviate from sticking "4 module" on their FX processors? Because "module" isn't something most people understand but core is. AMD didn't want to stick "4 core" on their boxes because they want to advertise that it has more than Intel's "4 core" processors. So they went with "8 core," not because of the truthfulness of the declaration, but to make people looking at processors consider AMD's product over Intel's because "more is better." That's what false advertising is though: declaring your product having more than it really does.
Would you say that you purchased a 3584 cuda core GPU over a 2560 cuda core GPU, let us muddy that water a little further because nvidia calls two different things core in their own product so the GPU core is a 1080ti, but it has 3584 cuda cores. Which one is a core, which one is a definition of a core. Is it because people understand what the definition of a core is and are using that branding of what a core is to further sell their product instead of the truthfulness of the declaration? Or is it different because it is not CPU?
Shambles1980the only 1 here saying amd can define what a core is is you..
Its abundantly clear amd can and has repetedly changed their definition of "core" to suit marketing, and bamboozle customers.. which is the actuall issue here. and you even nye on admit it in the above quoted post..

and this is why i say we have to agree to disagree..
you just 100% argued your case away in 2 posts and yet im to continue debating??
I am going to pull your verbatim words for this.
Shambles1980amd defined what a core was in their oppinion
The last section of what you said does not negate what you said. AMD defined what a core was is the root of your statement, they are your words own them. AMD is a leader in this industry, they were then and they still are now. Their ability to adjust a definition to fit their end needs, does not make anymore of a difference to me than when they moved the memory controller from the chipset to the CPU to form an IMC. This was a further advancement in the industry. Definitions will change as products change. This has always been true for the tech industry.
Posted on Reply
#92
ghazi
This is like demanding that NVIDIA cease using the term "CUDA Core" because the "real core" is the SMX. The CPU has 8 integer processor cores, which should suffice considering that FPUs historically are not an integral part of a CPU, and can also process eight 128-bit floating point operations simultaneously.
Posted on Reply
#93
Shambles1980
cdawallThe last section of what you said does not negate what you said. AMD defined what a core was is the root of your statement, they are your words own them. AMD is a leader in this industry, they were then and they still are now. Their ability to adjust a definition to fit their end needs, does not make anymore of a difference to me than when they moved the memory controller from the chipset to the CPU to form an IMC. This was a further advancement in the industry. Definitions will change as products change. This has always been true for the tech industry.
cant even be botherd to dissect the 1st part.. but as for "advancements" you dont advance and then change back because the "advancment" was worse.. thats called regression.
you cant just sell iron as gold because you are an industry leader, then decide iron was junk so go back to using gold and expect the people who bought the iron not to complain you advertized it in a deliberately manipulative manner.

actually..
i will simply dissect the 1st part.
if i say
"buldoser has 8 cores in your oppinion."
Guess what that still means i dont agree, and still does not mean it has 8 real cores.
Posted on Reply
#94
cdawall
where the hell are my stars
Shambles1980cant even be botherd to dissect the 1st part.. but as for "advancements" you dont advance and then change back because the "advancment" was worse.. thats called regression.
you cant just sell iron as gold because you are an industry leader, then decide iron was junk so go back to using gold and expect the people who bought the iron not to complain you advertized it in a deliberately manipulative manner.

actually..
i will simply dissect the 1st part.
if i say
"buldoser has 8 cores in your oppinion."
Guess what that still means i dont agree, and still does not mean it has 8 real cores.
So are you saying an attempt to improve something failed? HOLD THE PRESSES. We know FX sucked. It doesn't change that they built it as an advancement in the industry. It failed it so they went a better route. In fact if you want to call if a 4 core processor to this date I do not believe it's multicore efficiency depending on workload has ever been bested.

Also your agreement isn't a requirement for something to be true. Facts are true, opinions are opinions. Factually there is not a true definition of a core. There are tons of opinions, but may as well make assumptions at that point.
Posted on Reply
#95
Vya Domus
FordGT90ConceptAWhy did they deviate from sticking "4 module" on their FX processors?
Because a "module" doesn't mean anything and it's not a term that can be used to describe the functionality of a CPU (go ahead and find me any computer architecture literature where "CPU modules" are used in this context aka describing microprocessor architecture). You are suggesting AMD should have used a term that's even more ambiguous and devoid of meaning. They only mentioned this terminology in the context of their own internal design .These notions were never meant to reach consumers or to be turned into some sort of industry standard, they didn't deviate from anything.

I'll say it again, the traditional CPU core design has been dead for decades. No matter how much will the plaintiffs struggle to find footing in this argument there is simply no modern analogue that they can adhere to.
Posted on Reply
#96
FordGT90Concept
"I go fast!1!11!1!"
cdawallWould you say that you purchased a 3584 cuda core GPU over a 2560 cuda core GPU, let us muddy that water a little further because nvidia calls two different things core in their own product so the GPU core is a 1080ti, but it has 3584 cuda cores. Which one is a core, which one is a definition of a core. Is it because people understand what the definition of a core is and are using that branding of what a core is to further sell their product instead of the truthfulness of the declaration? Or is it different because it is not CPU?
May have missed the edit but the difference is core counts are prominently advertised for CPU sales but it is not for GPUs. It's something directly linked to buying decisions so what it means becomes very important in terms of false advertising claims. Athlon 64 X2 was advertised as 2-core, X4 as 4-core, X6 as 6-core; Ryzen 2700X as 8-core; i7 920 as 4-core, Core 2 Duo as 2-core, and so on. Then we get to Bulldozer, Steamroller, and Piledriver: 8-core*. The norm was established by AMD and maintained by AMD for many years then AMD marketeers decided to call something that was a whole now only a part of the whole. How is that not false advertising?

* integer cores
Posted on Reply
#97
Aquinus
Resident Wat-man
My god, ffs. This stupid debate again? This is like the "Warning: Contents Hot" warning on coffee cups. What do they demand, the ALU and FPU counts be presented on the product packaging? You know what, lets just require the packaging list out every transistor and it's usage. That will clearly clarify things and will make sense to 99% of consumers, right?

I'm sorry to say it, but when consumers, generally speaking, don't know what's even inside a CPU or how it works, they're not really giving two shits weather or not the FPU is shared, what it's width is, or if it's two FPUs slapped together with FMA. If you try to explain floating point versus fixed point math to someone and the situations in which they're used and how it impacts performance, most people's eyes will glaze over because they don't know what the hell you're talking about. AMD needs to dumb it down to language that a typical consumer can understand. This isn't false advertising. This is someone who is still butt hurt over AMD producing a garbage CPU and using it as an opportunity to make some money.

We already know the FX CPUs where garbage. We don't need to dwell over that, but when push comes to shove, you can have a CPU without floating point units, you can't have a CPU without ALUs and AGUs.

...by the way, 2012 called. It wants its CPU back.
Posted on Reply
#98
FordGT90Concept
"I go fast!1!11!1!"
Vya DomusBecause a "module" doesn't mean anything and it's not a term that can be used to describe the functionality of a CPU (go ahead and find me any computer architecture literature where "CPU modules" are used in this context aka describing microprocessor architecture). You are suggesting AMD should have used a term that's even more ambiguous and devoid of meaning. They only mentioned this terminology in the context of their own internal design .These notions were never meant to reach consumers or to be turned into some sort of industry standard, they didn't deviate from anything.

I'll say it again, the traditional CPU core design has been dead for decades. No matter how much will the plaintiffs struggle to find footing in this argument there is simply no modern analogue that they can adhere to.
AMD created something unique and described it with a word that is suitable. AMD talked about it extensively. If the design was successful and other manufacturers turned to it, "modules" would slowly replace "cores" as what people looking towards when making a purchasing decision. Simply by distinguishing the name, AMD would incite people to research the difference so there wouldn't be so much confusion and misunderstanding.

AMD defined what a "core" was less than a decade before AMD debuted the "module." If they could do it once, they could do it again.
ghaziThis is like demanding that NVIDIA cease using the term "CUDA Core" because the "real core" is the SMX. The CPU has 8 integer processor cores, which should suffice considering that FPUs historically are not an integral part of a CPU, and can also process eight 128-bit floating point operations simultaneously.
If you want to get technical, CPUs should be advertised by thread count rather than core/module count. The different ways to multithread though (there's 4 way, 2 way, and 1 way if not more), makes that a sketchy proposition.
Posted on Reply
#99
cdawall
where the hell are my stars
FordGT90ConceptAMD defined what a "core" was less than a decade before AMD debuted the "module." If they could do it once, they could do it again.
They did. With FX they redefined what a core was. Like you said if they did it once they can do it again.
Posted on Reply
#100
FordGT90Concept
"I go fast!1!11!1!"
AquinusMy god, ffs. This stupid debate again? This is like the "Warning: Contents Hot" warning on coffee cups. What do they demand, the ALU and FPU counts be presented on the product packaging? You know what, lets just require the packaging list out every transistor and it's usage. That will clearly clarify things and will make sense to 99% of consumers, right?

I'm sorry to say it, but when consumers, generally speaking, don't know what's even inside a CPU or how it works, they're not really giving two shits weather or not the FPU is shared, what it's width is, or if it's two FPUs slapped together with FMA. If you try to explain floating point versus fixed point math to someone and the situations in which they're used and how it impacts performance, most people's eyes will glaze over because they don't know what the hell you're talking about. AMD needs to dumb it down to language that a typical consumer can understand. This isn't false advertising. This is someone who is still butt hurt over AMD producing a garbage CPU and using it as an opportunity to make some money.

We already know the FX CPUs where garbage. We don't need to dwell over that, but when push comes to shove, you can have a CPU without floating point units, you can't have a CPU without ALUs and AGUs.

...by the way, 2012 called. It wants its CPU back.
We wouldn't be having this conversation if AMD put "4 module" or "8 integer core" on the box instead of "8 core."
cdawallThey did. With FX they redefined what a core was. Like you said if they did it once they can do it again.

core = independent CPU

Always was, always will be*.

* Except Bulldozer, Steamroller, and Piledriver but AMD is about to get bitch slapped for that mistake.


AMD made Microsoft count sockets instead of processors because each socket could house more than one processor (described as a core). It is accurate to describe 2700X as an 8 processor product. It is inaccurate to describe FX-8350 as an 8 processor product because there's only 4 independent processors in it.
Posted on Reply
Add your own comment
Dec 18th, 2024 08:26 EST change timezone

New Forum Posts

Popular Reviews

Controversial News Posts